Menu
CoddyTech

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);.

challenge icon

Sfida

Facile

La 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 delay secondi (1 nell'Inspector), poi cade.
  • La caduta è gestita da un metodo chiamato Fall: attiva la fisica della piattaforma (isKinematic = false) e registra Crumble!.
  • 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!
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fisica e gameplay