Menu
CoddyTech

Las monedas vuelven

Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 30 de 63.

challenge icon

Desafío

Intermedio

Una moneda recogida reaparece después de respawnDelay segundos, así que siempre hay algo que perseguir. Esa espera ocurre dentro de la vida de una moneda: una corrutina. Conserva todo lo de los pasos anteriores y modifica Coin:

  • Añade public float respawnDelay = 3f;.
  • Un GameObject desactivado no ejecuta corrutinas, así que SetActive(false) detendría la corrutina de la moneda antes de que pudiera hacerla reaparecer. Oculta la moneda de otra manera: desactiva su Renderer para que no se dibuje y su Collider para que no se pueda recoger de nuevo.
  • Al recogerla, inicia una corrutina que oculte la moneda, espere respawnDelay segundos y después reactive ambos componentes. La puntuación se suma como antes.

Pulsa Play, recoge una moneda y observa cómo reaparece; después, pulsa Check.

Pruébalo tú mismo

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

Todas las lecciones de Física y jugabilidad