Menu
CoddyTech

복습: 문 상태

Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 41번째.

이 장에서는 각 상태에 고유한 클래스를 부여하고, 하나의 StateMachine으로 상태들을 실행하며, 각 상태가 스스로 빠져나갈 방법을 결정하도록 했습니다. 문은 이 세 가지를 하나로 묶습니다.

challenge icon

챌린지

중급

DoorStates.cs에서 성문 문의 다섯 가지 상태를 완성하세요. 도우미 함수는 Door.cs에 있습니다.

  1. 잠김: door.PressedNear()는 Locked를 로그에 기록합니다. Door.Unlock()은 잠긴 문을 closed 상태로 변경합니다.
  2. 닫힘: PressedNear()는 opening 상태로 변경합니다. 열리는 중: door.SlideTo(door.openY)가 true가 되면 open 상태로 변경합니다.
  3. 열림: door.stayOpen초가 지나면 closing 상태로 변경합니다.
  4. 닫히는 중: PressedNear()를 누르면 다시 열립니다. 그렇지 않으면 SlideTo(door.closedY)가 완료되면 closed 상태로 변경합니다.

‘플레이’를 눌러 열쇠를 가져와 문을 여세요. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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 icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 게임 아키텍처의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드