Las monedas vuelven
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 30 de 63.
Desafío
IntermedioUna 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 suRendererpara que no se dibuje y suColliderpara que no se pueda recoger de nuevo. - Al recogerla, inicia una corrutina que oculte la moneda, espere
respawnDelaysegundos 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
1Cuerpo rígido
Gravedad y masaEmpujar con AddForceSaltar con un impulsoFixedUpdate para físicaVelocidadCuerpos cinemáticosRepaso: plataforma de lanzamiento2Colisiones
OnCollisionEnter¿Qué golpeé?Romper al impactarDe pie sobre el sueloRebote y fricciónFormas de los collidersRepaso: muro destructible5Proyecto: Carrera de monedas
La bola rodanteMonedas para recoger