Menu
CoddyTech

Invoquer

Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 21 sur 63.

Invoke("Explode", 3f) appelle une fois la propre méthode du script Explode, dans 3 secondes, et le code qui suit continue immédiatement. Unity trouve la méthode grâce à son nom, donné sous forme de chaîne, et la méthode ne prend aucun paramètre. Cette bombe explose 3 secondes après le démarrage du jeu :

void Start()
{
    Invoke("Explode", 3f);
}

void Explode()
{
    Debug.Log("Boom");
    Destroy(gameObject);
}

Comme le nom est une chaîne, le compilateur ne peut pas le vérifier. Invoke("Explod", 3f) est compilé, et 3 secondes plus tard, Unity affiche Trying to Invoke method: Bomb.Explod couldn't be called. au lieu de provoquer l’explosion. Le nameof de C# résout ce problème : nameof(Explode) est la chaîne "Explode", générée par le compilateur à partir d’un nom qu’il a vérifié. Une faute de frappe à l’intérieur provoque donc une erreur de compilation que vous voyez avant l’exécution du jeu. Écrivez Invoke(nameof(Explode), 3f);.

challenge icon

Défi

Facile

La plateforme entre les deux rebords est une plateforme qui s’effondre. Son Rigidbody est cinématique, elle reste donc suspendue dans les airs. Écris son script Crumble :

  • Lorsque le joueur atterrit dessus, elle attend delay secondes (1 dans l’Inspector), puis tombe.
  • La chute est une méthode nommée Fall : elle active la physique de la plateforme (isKinematic = false) et affiche Crumble! dans les logs.
  • Avant que le joueur ne la touche, la plateforme reste à sa place.

Utilise nameof pour le nom de la méthode. Appuie sur Play et marche sur la plateforme avec les flèches, puis clique sur Check.

Essayez vous-même

using UnityEngine;

public class Crumble : MonoBehaviour
{
    public float delay = 1f;
    Rigidbody body;

    void Start()
    {
        body = GetComponent<Rigidbody>();
    }

    void OnCollisionEnter(Collision collision)
    {
        // Quand le joueur atterrit : faire tomber la plateforme delay secondes plus tard
    }

    // Fall() : activer la physique de la plateforme et écrire Crumble! dans le journal
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Physique et gameplay