Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
Daxode committed Jul 11, 2024
2 parents ee3c089 + 5c817f7 commit 59a97be
Showing 1 changed file with 36 additions and 1 deletion.
37 changes: 36 additions & 1 deletion ~Documentation/topics/Opgave-2-Kollision.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,48 @@
# Del 2 (Kollision)

## Påvirk andre objekter
Nu hvor vi kan lave patroner vil vi gerne have at patronerne også flyver frem så man rigtig skyder.
Nu hvor vi kan lave patroner vil vi gerne have at patronerne også flyver frem så man rigtig skyder. Istedet for at lave et
script til patronen så kan vi istedet gøre det fra spilleren af. Når man kalder `Instantiate` får man faktisk også


## OnCollisionEnter
Når nu vi faktisk kan skyde, så vil vi gerne have noget at skyde efter. Lidt ligesom da vi lavede spilleren laver vi en simpel kapsel
som vi kan kalde "Enemy". Fjenderne skal naturligvis dø når de
rammes af en patron. Unity har defineret funktionen `OnCollisionEnter` som kaldes automatisk når to objekter koliderer.
Det er nemmest hvis fjenderne selv holder styr på hvornår de bliver ramt, så vi laver et script til dem, og tilføjer den nedenstående kode.

```C#
void OnCollisionEnter (Collider other)
{
//Code here
}
```

I denne funktion får man information om det andet objekt i kollisionen gennem variable `other`. Vi er kun interesserede i
kollisioner der involverer patroner, så vi benytter en `if`-statement. I den statements betingelse kan vi benytte det der
hedder tags til at kende forskel på patroner og andre typer af objekter. Som vist nedenunder laver vi et tag "Bullet" og
tildeler det til vores prefab af patronen.

*gif of making and assigning "Bullet" tag til bullet prefaben*

For at sikre at `other` er koblet til et `gameObject` med tagget "Bullet" bruger vi funtionen `CompareTag` som vist nedenunder.

```C#
if (other.gameObject.CompareTag("Bulllet")){

}
```

## GameObject.Destroy
Når man gerne vil fjerne `gameObjects` kan man med fordel bruge funktionen `Destroy`, som tager det `gameObject` som skal
fjernes som parameter.
Eksempelvis kan vi, når vi har sikret at fjenden er ramt af en patron, fjerne fjenden med `Destroy` som vist nedenunder.

```C#
if (other.gameObject.CompareTag("Bulllet")){
Destroy(gameObject);
}
```

## Opgave
1. Slå “OnTriggerEnter” op i unitys dokumentation
Expand Down

0 comments on commit 59a97be

Please sign in to comment.