Aufrufen
Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 22 von 71.
Invoke("Explode", 3f) ruft die eigene Methode des Skripts Explode einmal in 3 Sekunden auf, und der Code danach wird sofort weiter ausgeführt. Unity findet die Methode anhand ihres Namens, der als Zeichenkette angegeben wird, und die Methode nimmt keine Parameter entgegen. Diese Bombe explodiert 3 Sekunden nach Spielstart:
void Start()
{
Invoke("Explode", 3f);
}
void Explode()
{
Debug.Log("Boom");
Destroy(gameObject);
}Da der Name eine Zeichenkette ist, kann der Compiler ihn nicht überprüfen. Invoke("Explod", 3f) wird kompiliert, und 3 Sekunden später protokolliert Unity Trying to Invoke method: Bomb.Explod couldn't be called., anstatt die Bombe explodieren zu lassen. C#'s nameof behebt das: nameof(Explode) ist die Zeichenkette "Explode", die der Compiler aus einem überprüften Namen erstellt. Ein Tippfehler darin führt also zu einem Kompilierfehler, den du siehst, bevor das Spiel läuft. Schreibe Invoke(nameof(Explode), 3f);.
Aufgabe
EinfachLass die Plattform kurz nachdem der Spieler darauf gelandet ist einstürzen.
- Rufe in
OnCollisionEnter, wenncollision.gameObject.CompareTag("Player")zutrifft,Invoke(nameof(Fall), delay);auf. - Füge
void Fall()hinzu: Setzebody.isKinematic = false;und gibCrumble!aus.
Drücke auf „Spielen“ und gehe auf die Plattform: Eine Sekunde später fällt sie herunter. Drücke dann auf „Prüfen“.
Probier es selbst
using UnityEngine;
public class Crumble : MonoBehaviour
{
public float delay = 1f;
Rigidbody body;
void Start()
{
body = GetComponent<Rigidbody>();
}
void OnCollisionEnter(Collision collision)
{
// Wenn der Spieler landet: Lass die Plattform nach delay Sekunden fallen
}
// Fall(): Aktiviere die Physik der Plattform und protokolliere Crumble!
}
Alle Lektionen in Physik und Gameplay
1Rigidbody
Schwerkraft und MasseMit AddForce schiebenMit einem Impuls springenFixedUpdate für PhysikGeschwindigkeitKinematische KörperRückblick: Startrampe4Coroutinen
AufrufenWiederholt aufrufen, Aufruf abbrechenDeine erste CoroutineSchleifen in CoroutinenCoroutinen beendenRückblick: Countdown10Projekt: Arena-Flucht
Die ArenaJäger2Kollisionen
OnCollisionEnterWas habe ich getroffen?Beim Aufprall zerbrechenAuf dem Boden stehenAbprallen und ReibungCollider-FormenRückblick: Zerstörbare Wand5Projekt: Münzrausch
Der rollende BallMünzen zum Einsammeln11Abschließende Herausforderungen
KanonenreichweiteBewegliche ZieleMurmelgolfIns LochEscape RoomDie TürÜbe selbstständig: Unity-Playground