In dit Project maak je ook een folder genaamd Scripts en hierin maak je 2 scripts aan; MyAdventure.cs en TextScriptableObject.
Zet in de Scene van je project ook weer een canvas met een text vlak.
Slide 2 - Tekstslide
Scriptable Object
Wat is het?
Data containers. Je kan er veel data in op slaan die niet verandert wordt. Deze data kan je dan vervolgens uitlezen en gebruiken.
Slide 3 - Tekstslide
Scriptable Object - Maken
Als eerste willen we MonoBehaviour weghalen van onze inheritence, dit willen we vervangen met ScriptableObject.
Slide 4 - Tekstslide
Scriptable Object - Maken
Om in het Project window van Unity een Scriptable Object aan te kunnen maken hebben we nog iets extra's nodig boven de Class.
File name is de default name die een nieuw object krijgt.
Menu name is de naam voor als je over create hovert.
Slide 5 - Tekstslide
Scriptable Object - Maken
Menu Name
File Name
Slide 6 - Tekstslide
Scriptable Object - Maken
In ons Scriptable Object script kunnen we allerlei variables stoppen, vandaag hebben we er echter maar 2 nodig.
Een string voor de text en een int als Room code.
Slide 7 - Tekstslide
Scriptable Object - Maken
Zoals je ziet hebben we ook een [TextArea] boven onze string, dit zorgt er voor dat we in de inspector een groter vlak hebben om text in te typen. Best handig dus!
De (15, 20) besluit hoe groot het vlak is en mag zijn.
Slide 8 - Tekstslide
Scriptable Object - Gebruiken
Voor iedere kamer/state waar de speler zich in kan bevinden maken we een Scriptable Object aan.
Deze willen we daarna op gaan slaan in een lijst. Deze lijst maken we aan in ons MyAdventure script.
Slide 9 - Tekstslide
Scriptable Object - Gebruiken
Verder willen we nog een paar andere variables aanmaken in de MyAdventure class.
Slide 10 - Tekstslide
Scriptable Object - Gebruiken
Text textArea -> het text element dat we aan willen passen naar ons verhaaltje.
TextScriptableObject currentTextObject -> Houdt ons huidige Scriptable Object bij, deze gebruiken we om de text aan te passen.
Slide 11 - Tekstslide
Scriptable Object - Gebruiken
int currentRoomID -> Houdt bij wat onze huidige RoomID is, dit gebruiken we ook om onze currentTextObject bij te houden.
int lastRoomID -> Dit houdt onze vorige room id bij, dit gebruiken we om later een stapje terug te kunnen nemen.
Slide 12 - Tekstslide
Scriptable Object - Gebruiken
In de start functie willen we een aantal variables een waarde geven, we zetten ons currentRoomID op 0 en ons currentTextObject zetten we gelijk aan het eerste TextScriptableObject in de lijst.
Slide 13 - Tekstslide
Scriptable Object - Gebruiken
Daarna in de update gaan we met een for loop door de lijst heen. Hierin controlleren we of ons currentRoomID overeen komt met een RoomID van het ScriptableObject. Als dat zo is zetten we ons currentTextObject naar dat TextScriptableObject.
Slide 14 - Tekstslide
Scriptable Object - Gebruiken
Hieronder de for loop voegen we nog een extra lijn aan code toe. Deze update de tekst in ons TextArea naar de string van onze currentTextObject.
Slide 15 - Tekstslide
Scriptable Object
Om een volgend TextScriptableObject te laden kunnen we verschillende dingen doen. De simpelste is controlleren voor een button input en dan currentRoomID eentje omhoog te gooien. Dit is vooral handig als je een lineair verhaal hebt.
Slide 16 - Tekstslide
Scriptable Object
Zoals je waarschijnlijk zag zet ik ook lastRoomID gelijk aan currentRoomID, dit doe ik expres voordat ik currentRoomID update en verhoog. Hiermee hou ik bij wat het vorige ID was zodat ik daar naar terug kan gaan met een knop.
Slide 17 - Tekstslide
Scriptable Object
Als je wilt dat de speler meerdere opties heeft wordt het iets ingewikkelder, dit kan dan met if/else if statements of met een switch case. Ook in de switch case wil je nogsteeds if statements gebruiken om voor input te checken.