Menu
CoddyTech

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.

challenge icon

Desafío

Intermedio

Completa los cinco estados de la puerta del castillo en DoorStates.cs; Door.cs tiene las funciones auxiliares.

  1. Locked: door.PressedNear() registra Locked. Door.Unlock() cambia una puerta bloqueada a closed.
  2. Closed: PressedNear() cambia a opening. Opening: cuando door.SlideTo(door.openY) es true, pasa a open.
  3. Open: después de door.stayOpen segundos, pasa a closing.
  4. Closing: PressedNear() la abre de nuevo; de lo contrario, cuando SlideTo(door.closedY) se cumple, pasa a closed.

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()
    {
    }
}
quiz iconPonte a prueba

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

Practica por tu cuenta: Playground de Unity