Skip to content

Commit

Permalink
More opgaver horray!
Browse files Browse the repository at this point in the history
  • Loading branch information
Daxode committed Jul 9, 2024
1 parent 5be057b commit 8d78b56
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 2 deletions.
Binary file added ~Documentation/images/MonoBehaviour.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ~Documentation/images/UnityTypeInInspector.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ~Documentation/images/Unity_52PI0yyFzy.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ~Documentation/images/Unity_hBsAh5rkCP.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 39 additions & 1 deletion ~Documentation/topics/Opgave-2-Variabler.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ En anden vigtig detalje er at man ikke behøver at sætte en værdi. Man kalder
```C#
int alder;
```
Men det jo ikke så sjovt at have en variabel uden at vide hvad den indeholder. Så det er en god ide at sætte en værdi med det samme.
Men det jo ikke så sjovt at have en variabel uden at vide hvad den indeholder. Så det er en god ide at sætte en værdi med det samme (når det er muligt).

## Men hvor skal variablerne være?

Expand Down Expand Up @@ -72,6 +72,36 @@ Så har vi altså lavet variablen `alder` til at være `public` så andre kan f

![VariableIInspector.gif](VariableIInspector.gif)

## Lave sine egne typer?

Jamen i har faktisk allerede skabt 2 af dem!
Da i skrev:
```C#
public class PlayerScript : MonoBehavoiur
{
// Kode her
}

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

Så 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:

![MonoBehaviour.gif](MonoBehaviour.gif)

Som eksempel betyder det også at man kan lave en variable med de typer vi har lavet, altså:
```C#
public PlayerScript myPlayer;
```
Og fordi vi har skrevet `public` kan den også tilgås i vores editor:

![UnityTypeInInspector.gif](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 `//` for at lave en kommentar. Hvor at alt efter `//` vil blive ignoreret af computeren.
Expand All @@ -82,3 +112,11 @@ I C# skriver `//` for at lave en kommentar. Hvor at alt efter `//` vil blive ign
## 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](Unity_52PI0yyFzy.gif)

<note>
Bemærk at variabler ikke bliver gemt når i stopper spillet. Så hvis i vil gemme en variabel, så husk at ændre den i editoren før i trykker på 'Play' knappen.
</note>
52 changes: 51 additions & 1 deletion ~Documentation/topics/Opgave-3-If-s-og-input.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,53 @@
# Opgave 3 (If&apos;s og input)

Start typing here...
## C# `if` sætninger

Det er tid til at introducere `if` sætninger.
`if` sætninger er en måde at lave en beslutning i koden.
Hvis en betingelse er sand, så udføres en blok kode.
Hvis betingelsen er falsk, så udføres en anden blok kode.

Tag som eksempel denne kode:

```C#
void Update()
{
if (speed > 18)
{
print("Du er speed");
}
else
{
print("Du er aight");
}
}
```

Her tjekker vi om `speed` er større end 18. Hvis det er, så skriver vi "Du er speed" i konsollen.
Ellers skriver vi "Du er aight".

## Input

Hvis vi vil lave en beslutning baseret på input, så kan vi bruge `Input` klassen.
`Input` klassen har en metode `GetKey` som tager en `KeyCode` som argument.
`KeyCode` er en type der repræsenterer en tast på tastaturet.
Tag som eksempel koden `Input.GetKey(KeyCode.W)` den ville returnere `true` hvert frame hvor W-tasten er trykket ned. Man kunne bl.a. blande det med viden om `if`-sætninger til at flytte en spiller fremad.
```C#
if (Input.GetKey(KeyCode.W))
{
forwardDirection = 1;
}
```
Det er også muligt at bruge `Input.GetKeyDown` som kun returnerer `true` den første frame hvor tasten er trykket ned.
```C#
if (Input.GetKey(KeyCode.W))
{
forwardDirection = 1;
}
```


## Opgave 3
- Lav en if-then-else der skriver “pew” i konsollen baseret på input
- Slå “GameObject.Destroy()” op i Unitys dokumentation
- Prøv at bruge “GameObject.Destroy()” til at fjerne et objekt

0 comments on commit 8d78b56

Please sign in to comment.