Menu
CoddyTech

Potenciadores

Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 45 de 50.

challenge icon

Desafío

Intermedio

Potenciadores. Conserva todo lo de las lecciones anteriores. En la arena hay un corazón y un escudo, y los prefabs Heart y Shield están listos para que aparezcan en las oleadas. Todo lo que el héroe puede recoger implementa una interfaz, así que el héroe nunca necesita conocer los tipos.

  • IPickup declara un método, void Collect(Hero hero);.
  • Heart la implementa con amount (2) desde el Inspector: cura al héroe en amount y se destruye.
  • Shield la implementa con duration (5) desde el Inspector: protege al héroe de todos los golpes durante duration segundos y se destruye.
  • Hero obtiene public void Heal(int amount), que suma salud, pero nunca supera maxHealth, y registra la salud, igual que cuando recibe un golpe; un héroe caído no se cura. También obtiene public void Protect(float seconds), que lo protege de los golpes hasta dentro de seconds segundos, como hace safeTime al recibir un golpe. También obtiene OnTriggerEnter: cuando lo que toca tiene un IPickup, lo llama con Collect(this). Un CharacterController recibe mensajes de activación de disparadores sin un Rigidbody.
  • Cada Wave obtiene un public GameObject reward. El Inspector no puede mostrar un campo de un tipo de interfaz, así que el campo contiene el prefab como GameObject. Cuando se derrota una oleada, antes del descanso, el generador suelta la recompensa de la oleada, si tiene una, en su propia posición, en el centro de la arena. El recurso asigna un Heart a la oleada 1 y un Shield a la oleada 2.

Pulsa Play, supera una oleada y recoge su recompensa; después, pulsa Check.

Pruébalo tú mismo

// Una lección posterior completará esto: cualquier cosa que el héroe pueda recoger.
public interface IPickup
{
}

Todas las lecciones de Arquitectura de juegos en Unity