Invocar
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 21 de 63.
Invoke("Explode", 3f) llama al método del propio script Explode una vez, dentro de 3 segundos, y el código que viene después continúa de inmediato. Unity encuentra el método por su nombre, indicado como una cadena, y el método no recibe parámetros. Esta bomba explota 3 segundos después de que empieza el juego:
void Start()
{
Invoke("Explode", 3f);
}
void Explode()
{
Debug.Log("Boom");
Destroy(gameObject);
}Como el nombre es una cadena, el compilador no puede comprobarlo. Invoke("Explod", 3f) compila y, 3 segundos después, Unity registra Trying to Invoke method: Bomb.Explod couldn't be called. en lugar de explotar. nameof de C# soluciona esto: nameof(Explode) es la cadena "Explode", generada por el compilador a partir de un nombre que ha comprobado, así que un error tipográfico dentro de ella provoca un error de compilación que verás antes de que se ejecute el juego. Escribe Invoke(nameof(Explode), 3f);.
Desafío
FácilLa Plataforma entre las dos repisas se está desmoronando. Su Rigidbody es cinemático, así que permanece suspendida en el aire. Escribe su script Crumble:
- Cuando el jugador aterrice sobre ella, espera
delaysegundos (1 en el Inspector) y después cae. - La caída es un método llamado
Fall: activa la física de la plataforma (isKinematic = false) y registraCrumble!. - Antes de que el jugador la toque, la plataforma permanece en su sitio.
Usa nameof para el nombre del método. Pulsa Play y camina sobre la plataforma usando las flechas; después, pulsa Check.
Pruébalo tú mismo
using UnityEngine;
public class Crumble : MonoBehaviour
{
public float delay = 1f;
Rigidbody body;
void Start()
{
body = GetComponent<Rigidbody>();
}
void OnCollisionEnter(Collision collision)
{
// Cuando el jugador aterrice: haz que la plataforma caiga delay segundos después
}
// Fall(): activa la física de la plataforma y registra Crumble!
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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