Invoquer
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 22 sur 71.
Invoke("Explode", 3f) appelle une fois la méthode propre au script Explode, dans 3 secondes, et le code qui suit s’exécute immédiatement. Unity trouve la méthode à partir de son nom, fourni 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. nameof en C# corrige cela : 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 le lancement du jeu. Écrivez Invoke(nameof(Explode), 3f);.
Défi
FacileFais s’effondrer la plateforme un instant après que le joueur a atterri dessus.
- Dans
OnCollisionEnter, lorsquecollision.gameObject.CompareTag("Player"), appelleInvoke(nameof(Fall), delay);. - Ajoute
void Fall(): définisbody.isKinematic = false;et consigneCrumble!.
Appuie sur « Jouer » et marche sur la plateforme : une seconde plus tard, elle tombe. Puis appuie sur « Vérifier ».
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 afficher Crumble! dans le journal
}
Toutes les leçons de Physique et gameplay
1Corps rigide
Gravité et massePousser avec AddForceSauter avec une impulsionFixedUpdate pour la physiqueVitesseCorps cinématiquesRécapitulatif : plateforme de lancement4Coroutines
InvoquerInvokeRepeating, CancelInvokeVotre première coroutineBoucles dans les coroutinesArrêter les coroutinesRécapitulatif : compte à rebours7Rotation
Angles d’EulerQuaternionsRegardez dans la direction où vous vous déplacezTourner en douceurRécapitulatif : tourelle10Projet : Évasion de l’arène
L’arèneLes chasseurs2Collisions
OnCollisionEnterQu’est-ce que j’ai touché ?Se briser à l’impactRester au solRebond et frictionFormes des collidersRécapitulatif : mur destructible5Projet : Course aux pièces
La balle roulanteDes pièces à ramasser3Déclencheurs
Colliders déclencheursOnTriggerEnterObjets à ramasserLes caisses gardent le resteZones mortellesEntrée et sortieRécapitulatif : clé et porteEntraînez-vous par vous-même : Playground Unity