Menu
CoddyTech

Recap: Door States

Part of the Game Architecture in Unity section of Coddy's Unity journey. Lesson 41 of 64.

This chapter gave each state a class of its own, ran them with one StateMachine, and let every state decide its own way out. The door puts the three together.

challenge icon

Challenge

Medium

Fill in the castle door's five states in DoorStates.cs; Door.cs has the helpers.

  1. Locked: door.PressedNear() logs Locked. Door.Unlock() changes a locked door to closed.
  2. Closed: PressedNear() changes to opening. Opening: once door.SlideTo(door.openY) is true, open.
  3. Open: after door.stayOpen seconds, closing.
  4. Closing: PressedNear() opens again; else once SlideTo(door.closedY), closed.

Press Play, fetch the key and open the door. Then Check.

Try it yourself

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 iconTest yourself

This lesson includes a short quiz. Start the lesson to answer it and track your progress.

All lessons in Game Architecture in Unity

Practice on your own: Unity playground