Potenciadores
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 45 de 50.
Desafío
IntermedioPotenciadores. 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.
IPickupdeclara un método,void Collect(Hero hero);.Heartla implementa conamount(2) desde el Inspector: cura al héroe enamounty se destruye.Shieldla implementa conduration(5) desde el Inspector: protege al héroe de todos los golpes durantedurationsegundos y se destruye.Heroobtienepublic void Heal(int amount), que suma salud, pero nunca superamaxHealth, y registra la salud, igual que cuando recibe un golpe; un héroe caído no se cura. También obtienepublic void Protect(float seconds), que lo protege de los golpes hasta dentro desecondssegundos, como hacesafeTimeal recibir un golpe. También obtieneOnTriggerEnter: cuando lo que toca tiene unIPickup, lo llama conCollect(this). Un CharacterController recibe mensajes de activación de disparadores sin un Rigidbody.- Cada
Waveobtiene unpublic 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
1Componentes, no jerarquías
Componentes pequeñosUn script base para enemigosComponentes abstractosComponentes que trabajan juntosRepaso: torreta modular4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botín7Máquinas de estados
Estados como clasesUna máquina de estadosTransicionesCerebros de enemigosRepaso: estados de puertas10Proyecto: Superviviente de la arena
El héroeTipos de enemigos2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: tecla de interacción5ScriptableObjects
Recursos de datosEstadísticas de armasConfiguración compartidaOleadas como datosRepaso: base de datos de objetos