Menu
CoddyTech

복습: 문의 상태

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

challenge icon

챌린지

중급

자물쇠가 달린 성문입니다. 방향키로 Player를 움직이고, 금색 Key는 플레이어가 주우면(둘 다 준비된 상태) door.Unlock()을 호출합니다. IState와 이 장의 StateMachine은 프로젝트에 있습니다. Door.cs에는 Inspector의 값(closedY 1.5, openY 4, speed 2, stayOpen 2, reach 2.5), machine 필드와 PlayerNear()가 있습니다. 문에 다섯 가지 상태를 부여하세요. DoorStates.cs에 클래스로 만들고 이름은 LockedState, ClosedState, OpeningState, OpenState, ClosingState로 지정합니다.

  • 문은 Locked 상태로 시작합니다. 문 근처에서 스페이스 키를 누르면(PlayerNear()) Locked만 로그에 출력합니다. Unlock()은 잠긴 문을 Closed 상태로 바꾸며, 다른 상태에서는 아무 동작도 하지 않습니다.
  • Closed: 문 근처에서 스페이스 키를 누르면 문이 열리기 시작합니다.
  • Opening: 문의 y값이 openY가 될 때까지 문이 speed만큼 올라간 다음 Open 상태가 됩니다.
  • Open: stayOpen초가 지나면 문이 닫히기 시작합니다.
  • Closing: 문의 y값이 closedY가 될 때까지 문이 speed만큼 내려온 다음 Closed 상태가 됩니다. 내려가는 도중 문 근처에서 스페이스 키를 누르면 현재 위치에서 다시 열립니다.

Play를 누르고, 잠긴 문을 확인한 다음 열쇠를 가져와 문을 열고 지나간 후 Check를 누르세요.

직접 해보기

using UnityEngine;

// LockedState, ClosedState, OpeningState, OpenState 및 ClosingState

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