Invoke
Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 21 di 63.
Invoke("Explode", 3f) chiama il metodo dello script Explode una volta, tra 3 secondi, e il codice che segue prosegue subito. Unity trova il metodo tramite il suo nome, specificato come stringa, e il metodo non accetta parametri. Questa bomba esplode 3 secondi dopo l'avvio del gioco:
void Start()
{
Invoke("Explode", 3f);
}
void Explode()
{
Debug.Log("Boom");
Destroy(gameObject);
}Poiché il nome è una stringa, il compilatore non può verificarlo. Invoke("Explod", 3f) viene compilato e, 3 secondi dopo, Unity registra Trying to Invoke method: Bomb.Explod couldn't be called. invece di far esplodere la bomba. Il nameof di C# risolve il problema: nameof(Explode) è la stringa "Explode", generata dal compilatore a partire da un nome che ha verificato; quindi un errore di battitura al suo interno è un errore di compilazione che vedrai prima che il gioco venga eseguito. Scrivi Invoke(nameof(Explode), 3f);.
Sfida
FacileLa Platform tra le due sporgenze è una piattaforma che crolla. Il suo Rigidbody è cinematico, quindi resta sospeso in aria. Scrivi il suo script Crumble:
- Quando il giocatore ci atterra sopra, aspetta
delaysecondi (1 nell'Inspector), poi cade. - La caduta è gestita da un metodo chiamato
Fall: attiva la fisica della piattaforma (isKinematic = false) e registraCrumble!. - Prima che il giocatore la tocchi, la piattaforma resta al suo posto.
Usa nameof per il nome del metodo. Premi Play e cammina sulla piattaforma usando le frecce, poi premi Check.
Provalo tu
using UnityEngine;
public class Crumble : MonoBehaviour
{
public float delay = 1f;
Rigidbody body;
void Start()
{
body = GetComponent<Rigidbody>();
}
void OnCollisionEnter(Collision collision)
{
// Quando il giocatore atterra: fai cadere la piattaforma dopo delay secondi
}
// Fall(): attiva la fisica della piattaforma e registra Crumble!
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fisica e gameplay
1Corpo rigido
Gravità e massaSpingi con AddForceSalta con un impulsoFixedUpdate per la fisicaVelocitàCorpi cinematiciRiepilogo: piattaforma di lancio4Coroutine
InvokeInvokeRepeating, CancelInvokeLa tua prima coroutineCicli nelle coroutineInterrompere le coroutineRiepilogo: conto alla rovescia2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliere