GDC 2024 Help

Del 2 (Variabler)

Variabler og typer

Når man skriver kode får man ofte brug for at gemme nogle værdier. Disse gemmepladser kalder vi variabler. I C# ville en variabel kunne se sådan ud:

int alder = 10;

I koden ovenfor har vi lavet en variabel alder som er af typen int (integer) og sat den til at være 10. Man skal altså læse det som "alder er lig med 10". Eller:

type variabelNavn = værdi;

Men der findes mange flere typer end int. Her er nogle af de mest brugte:

  • int er heltal (f.eks. kan man skrive int alder = 10;)

  • float er decimaltal (f.eks. kan man skrive float vægt = 10.5f;)

  • string er tekst (f.eks. kan man skrive string navn = "Mikkel";)

  • bool er sandt/falsk (f.eks. kan man skrive bool erVoksen = true;)

Der er også nogle specielle typer som der kun findes i Unity:

  • Vector3 er en 3D vektor

  • GameObject er et Unity objekt

  • Transform er en position, rotation og skala

Disse typer kommer vi snart til at bruge. Men vi kommer ikke selv til at fokusere på at lave vores egne typer endnu. Men det er vigtigt at huske at det er en mulighed. En anden vigtig detalje er at man ikke behøver at sætte en værdi. Man kalder dette for en variabel deklaration.

int alder;

Men det er jo ikke så sjovt at have en variabel uden at vide hvad den indeholder. Det er dog en god ide at sætte en værdi med det samme når det er muligt.

Men hvor skal variablerne være?

Variabler kan være i mange forskellig steder. Hvis vi husker første lektion, så har vi en Start og en Update metode.

  • Hvis vi placerer en variabel i Start metoden, så vil den kun være tilgængelig i Start metoden.

  • Hvis vi placerer den i Update metoden, så vil den kun være tilgængelig i Update metoden.

  • Hvis vi placerer den udenfor begge metoder, så vil den være tilgængelig i begge metoder.

public class PlayerScript : MonoBehaviour { int alder = 10; // Start is called before the first frame update void Start() { int jegVirkerKunIStart = 20; print(alder + jegVirkerKunIStart); // Skriver 30 i konsollen } // Update is called once per frame void Update() { int jegVirkerKunIUpdate = 42; print(alder + jegVirkerKunIUpdate); // Skriver 52 i konsollen } }

Hvis i bemærker, så kan i se at reglen er at variablerne er tilgængelige inde mellem hver {}. Så fordi JegVirkerKunIStart er inde i Start metoden's {}, så kan den ikke tilgås i Update metoden.

Tilgængelighed i editoren

I C# kan man definere en variabel der lever udenfor en metode som public. Det betyder at andre steder kan tilgå den. Så kigger vi på koden:

public class PlayerScript : MonoBehaviour { public int alder = 10; }

Her har vi lavet variablen alder så den er public hvilket betyder at andre kan få værdien. I Unity betyder det også at den kan fås fat i fra Editoren så vi kan justere den ude fra vores script.

VariableIInspector.gif

Lave sine egne typer?

Jamen i har faktisk allerede skabt 2 af dem! Da i skrev:

public class PlayerScript : MonoBehavoiur { // Kode her } public class EnemyScript : MonoBehavoiur { // Kode her }

Lavede I faktisk typerne PlayerScript og EnemyScript, som begge er MonoBehaviour. Det at det er et MonoBehaviour betyder at man kan smide dem på et GameObjekt som et component:

MonoBehaviour.gif

Som eksempel betyder det at man også kan lave en variabel med en af de typer vi har lavet, altså:

public PlayerScript myPlayer;

Og fordi vi har skrevet public kan den også tilgås i vores editor:

UnityTypeInInspector.gif

Kommentarer

I koden ovenfor har vi også brugt noget der hedder kommentarer. Kommentarer er tekst i koden som ikke bliver kørt. De er der for at forklare hvad koden gør. I C# skriver man // for at lave en kommentar, hvor alt efter // vil blive ignoreret af computeren.

// Dette er en kommentar

Opgave 2

  1. Lav en variabel til at styre spillerens hastighed og gør så man kan tilgå den i editoren

  2. Lav en variabel til at håndtere cooldown af skud og gør så man kan tilgå den i editoren

Når i er færdige med at gentage hvad vi har lavet og lave opgaven, bør det se ud som under.

Unity_52PI0yyFzy.gif
Last modified: 14 July 2024