복습: 문 상태
Coddy Unity 여정의 Unity 게임 아키텍처 섹션에 포함된 레슨. 64개 중 41번째.
이 장에서는 각 상태에 고유한 클래스를 부여하고, 하나의 StateMachine으로 상태들을 실행하며, 각 상태가 스스로 빠져나갈 방법을 결정하도록 했습니다. 문은 이 세 가지를 하나로 묶습니다.
챌린지
중급DoorStates.cs에서 성문 문의 다섯 가지 상태를 완성하세요. 도우미 함수는 Door.cs에 있습니다.
- 잠김:
door.PressedNear()는Locked를 로그에 기록합니다.Door.Unlock()은 잠긴 문을closed상태로 변경합니다. - 닫힘:
PressedNear()는opening상태로 변경합니다. 열리는 중:door.SlideTo(door.openY)가 true가 되면open상태로 변경합니다. - 열림:
door.stayOpen초가 지나면closing상태로 변경합니다. - 닫히는 중:
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()
{
}
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
Unity 게임 아키텍처의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드