Menu
CoddyTech

Le monete ricompaiono

Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 30 di 63.

challenge icon

Sfida

Medio

Una moneta raccolta ricompare dopo respawnDelay secondi, quindi c'è sempre qualcosa da inseguire. Questa attesa avviene durante la vita di una singola moneta: è una coroutine. Mantieni tutto ciò che hai aggiunto nei passaggi precedenti e modifica Coin:

  • Aggiungi public float respawnDelay = 3f;.
  • Un GameObject disattivato non esegue coroutine, quindi SetActive(false) fermerebbe la coroutine della moneta prima che possa farla ricomparire. Nascondi la moneta in un altro modo: disattiva il suo Renderer, così non viene disegnata, e il suo Collider, così non può essere raccolta di nuovo.
  • Quando la moneta viene raccolta, avvia una coroutine che la nasconde, attende respawnDelay secondi e poi riattiva entrambi. Il punteggio viene aggiunto come prima.

Premi Gioca, raccogli una moneta e guardala ricomparire, poi premi Verifica.

Provalo tu

using UnityEngine;

public class Coin : MonoBehaviour
{
    public int value = 1;

    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            other.GetComponent<Ball>().AddScore(value);
            gameObject.SetActive(false);
        }
    }
}

Tutte le lezioni di Fisica e gameplay