Invoke
Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 22 di 71.
Invoke("Explode", 3f) chiama una volta il metodo Explode dello script stesso, tra 3 secondi, e il codice successivo 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. 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 causa un errore di compilazione che vedi prima dell'avvio del gioco. Scrivi Invoke(nameof(Explode), 3f);.
Sfida
FacileFai crollare la piattaforma un istante dopo che il giocatore ci atterra.
- In
OnCollisionEnter, quandocollision.gameObject.CompareTag("Player"), chiamaInvoke(nameof(Fall), delay);. - Aggiungi
void Fall(): impostabody.isKinematic = false;e registraCrumble!.
Premi «Gioca» e cammina sulla piattaforma: un secondo dopo, cade. Poi premi «Verifica».
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 scrivi Crumble! nel log
}
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 rovescia7Rotazione
Angoli di EuleroQuaternioniGuarda nella direzione in cui ti muoviRuota in modo fluidoRiepilogo: Torretta10Progetto: Fuga dall'arena
L'arenaCacciatori2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliereEsercitati da solo: Playground Unity