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:
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:
Men der findes mange flere typer end int
. Her er nogle af de mest brugte:
int
er heltal (f.eks. kan man skriveint alder = 10;
)float
er decimaltal (f.eks. kan man skrivefloat vægt = 10.5f;
)string
er tekst (f.eks. kan man skrivestring navn = "Mikkel";
)bool
er sandt/falsk (f.eks. kan man skrivebool erVoksen = true;
)
Der er også nogle specielle typer som der kun findes i Unity:
Vector3
er en 3D vektorGameObject
er et Unity objektTransform
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.
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 iStart
metoden.Hvis vi placerer den i
Update
metoden, så vil den kun være tilgængelig iUpdate
metoden.Hvis vi placerer den udenfor begge metoder, så vil den være tilgængelig i begge metoder.
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:
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.
Lave sine egne typer?
Jamen i har faktisk allerede skabt 2 af dem! Da i skrev:
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:
Som eksempel betyder det at man også kan lave en variabel med en af de typer vi har lavet, altså:
Og fordi vi har skrevet public
kan den også tilgås i vores editor:
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.
Opgave 2
Lav en variabel til at styre spillerens hastighed og gør så man kan tilgå den i editoren
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.