Für das CollisionScript erstelle ein Script für den Spieler.
Entferne die Start- und Updatefunktion. Füge stattdessen ein:
void OnCollisionEnter
Alles was in den geschweiften Klammern steht, geschieht, wenn zwei Objekte kollidieren. Unity benötigt Informationen darüber, welches Objekt getroffen wird. Dafür nutzt du die runden Klammern. Trage „Collision“ ein und teile Unity mit, dass jetzt Informationen über die Collision kommen. Gebe diesem dann einen Namen.
Jetzt gibst du Informationen über die CollisionInfo. Der „.“ sagt aus, dass jetzt eine Spezifizierung über die Informationen folgt. Füge jetzt collider ein und spezifiziere weiter mit „.“
Jetzt formulierst du die Bedingung für Unity.
Um die Spezifizierung zu verbessern bieten sich Tags an. Namen können zu Problemen führen, da sie sich verändern können und der Code sonst nicht mehr funktioniert. Füge ein Tag hinzu und weise es den Objekten zu, die mit dem Spieler kollidieren können.
Korrigiere dies im Code und ersetze Name durch tag.
Da der Spieler nach der Kollision einfach durch die Gegend fliegt, muss die Spielerbewegung deaktiviert werden. Dies geschieht ebenfalls über das Script. Füge dazu eine Variable ein. Ziehe jetzt das PlayerMovement Script in den neuen Slot.
Das fertige Script sieht folgendermaßen aus:
Wenn der Spieler mit etwas kollidiert, dass den Tag Obstacle zugewiesen bekam, ist er im Grunde Game Over und kann seine Figur nicht mehr steuern.
Um die physikalischen Reaktionen von Player und Objekten zu optimieren, wähle in Unity unter der Collision Detection die Option Continuous.
Wähle zusätzlich unter Edit –> Project Settings –> Time und senke die Fixed Time Steps auf 0.01. Unity updated die Physik im Spiel damit häufiger.
Diese Einstellungen optimieren die Kollisionen.
Originally posted 2020-06-05 16:31:00.