Repaso: estados de puertas
Parte de la sección Arquitectura de juegos en Unity del Journey de Unity de Coddy. Lección 41 de 64.
Este capítulo asignó a cada estado su propia clase, los ejecutó con una StateMachine y dejó que cada estado decidiera su propia forma de salir. La puerta combina las tres cosas.
Desafío
IntermedioCompleta los cinco estados de la puerta del castillo en DoorStates.cs; Door.cs tiene las funciones auxiliares.
- Locked:
door.PressedNear()registraLocked.Door.Unlock()cambia una puerta bloqueada aclosed. - Closed:
PressedNear()cambia aopening. Opening: cuandodoor.SlideTo(door.openY)es true, pasa aopen. - Open: después de
door.stayOpensegundos, pasa aclosing. - Closing:
PressedNear()la abre de nuevo; de lo contrario, cuandoSlideTo(door.closedY)se cumple, pasa aclosed.
Pulsa «Jugar», recoge la llave y abre la puerta. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class LockedState : IState
{
private Door door;
public LockedState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class ClosedState : IState
{
private Door door;
public ClosedState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class OpeningState : IState
{
private Door door;
public OpeningState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class OpenState : IState
{
private Door door;
public OpenState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
public class ClosingState : IState
{
private Door door;
public ClosingState(Door door)
{
this.door = door;
}
public void Enter()
{
}
public void Tick()
{
}
public void Exit()
{
}
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
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 modularRepaso: cañón doble4Datos serializados
Clases serializablesListas en el InspectorEnumeraciones en el InspectorRepaso: tabla de botínRepaso: sortear el botín7Máquinas de estados
Estados como clasesEl estado de alertaUna máquina de estadosTransicionesCerebros enemigosEl caballero atacaRepaso: estados de puertas2Interfaces en Unity
IDamageableInterfaces y TryGetComponentGetComponentsRepaso: Tecla de interacciónRepaso: El más cercano al alcance5ScriptableObjects
Activos de datosEstadísticas de armasConfiguración compartidaGuardar el vientoOleadas como datosRepaso: base de datos de objetosRepaso: comprar en la tienda3Eventos
Eventos de C# en UnitySuscribirse en OnEnableCampos UnityEventLos eventos controlan la interfazRepaso: ventana emergente de logrosRepaso: temporizador de la ventana emergentePractica por tu cuenta: Playground de Unity