Aufrufen
Teil des Abschnitts Physik und Gameplay der Unity-Journey von Coddy. Lektion 21 von 63.
Invoke("Explode", 3f) ruft die eigene Methode Explode des Skripts einmal in 3 Sekunden auf, und der Code danach wird sofort fortgesetzt. Unity findet die Methode anhand ihres Namens, der als Zeichenfolge angegeben wird, und die Methode nimmt keine Parameter entgegen. Diese Bombe explodiert 3 Sekunden nach Spielbeginn:
void Start()
{
Invoke("Explode", 3f);
}
void Explode()
{
Debug.Log("Boom");
Destroy(gameObject);
}Da der Name eine Zeichenfolge 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 zu explodieren. C#'s nameof behebt das: nameof(Explode) ist die Zeichenfolge "Explode", die der Compiler aus einem von ihm überprüften Namen erstellt. Ein Tippfehler darin führt daher zu einem Kompilierungsfehler, den du siehst, bevor das Spiel läuft. Schreibe Invoke(nameof(Explode), 3f);.
Aufgabe
EinfachDie Platform zwischen den beiden Vorsprüngen ist eine bröckelnde Plattform. Ihr Rigidbody ist kinematisch, sodass sie in der Luft hängt. Schreibe ihr Crumble-Skript:
- Wenn der Spieler darauf landet, wartet sie
delaySekunden (1 im Inspector) und fällt dann herunter. - Das Fallen ist eine Methode namens
Fall: Sie schaltet die Physik der Plattform ein (isKinematic = false) und protokolliertCrumble!. - Bevor der Spieler sie berührt, bleibt die Plattform an ihrem Platz.
Verwende nameof für den Namen der Methode. Drücke Play und gehe mit den Pfeiltasten auf die Plattform, dann Check.
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 herunterfallen
}
// Fall(): Aktiviere die Physik der Plattform und protokolliere Crumble!
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Physik und Gameplay
1Rigidbody
Schwerkraft und MasseMit AddForce schiebenMit einem Impuls springenFixedUpdate für PhysikGeschwindigkeitKinematische KörperRückblick: Startrampe2Kollisionen
OnCollisionEnterWas habe ich getroffen?Beim Aufprall zerbrechenAuf dem Boden stehenAbprallen und ReibungCollider-FormenRückblick: Zerstörbare Wand