Repaso: estados de puertas
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 32 de 50.
Desafío
IntermedioUna puerta de castillo con cerradura. Las flechas mueven al jugador, y la llave dorada llama a door.Unlock() cuando el jugador la recoge (ambos listos). IState y la StateMachine del capítulo están en el proyecto. Door.cs tiene los valores del Inspector (closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), un campo machine y PlayerNear(). Dale a la puerta cinco estados, como clases en DoorStates.cs llamadas LockedState, ClosedState, OpeningState, OpenState y ClosingState:
- La puerta empieza bloqueada. La barra espaciadora cerca de ella (
PlayerNear()) solo registraLocked.Unlock()cambia una puerta bloqueada al estado cerrado y no hace nada en ningún otro estado. - Cerrada: la barra espaciadora cerca de la puerta empieza a abrirla.
- Abriéndose: la puerta sube a
speedhasta que su y seaopenY; entonces queda abierta. - Abierta: después de
stayOpensegundos empieza a cerrarse. - Cerrándose: la puerta baja a
speedhasta que su y seaclosedY; entonces queda cerrada. Si pulsas la barra espaciadora cerca de ella mientras baja, vuelve a abrirse desde donde está.
Pulsa Play, prueba la puerta bloqueada, recoge la llave, abre la puerta y atraviesa, y después pulsa Check.
Pruébalo tú mismo
using UnityEngine;
// LockedState, ClosedState, OpeningState, OpenState y ClosingState
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