[Unity] 유한 상태 머신 FSM의 UML

고현규·2023년 12월 26일
0

유한 상태 머신을 만들면서 작동하는 모습을 좀더 큰 그림으로 그려보고 싶었다.

UML을 잘 그리는 편은 아니지만 일단 만들어져있는 코드를 StarUML로 작성했다.

다시 살펴보니 놀랐던 점은 Player Base StatePlayer State Machine을 상속받지 않고 선언을 해서 사용했다는 점이다.

PlayerBaseState

  • Player Ground State
  • Player Attack State
  • Player Air State

땅에 붙어있는 상태, 공격하는 상태, 공중에 떠있는 상태로 세개로 나눈 뒤에
해당 상태에서 일어날 수 있는 상태로 또 파생된다.

Player Ground State

  • Player Walk State
  • Player Run State
  • Player Idle State

걷기, 뛰기, 기본상태 3가지로 존재한다.
상태 머신은 필요 하다면 여기서 하나 더 상태를 늘릴 수 있다는 게 장점이다.

공격은 콤보 어택으로도 발전할 수 있고,
Player Air State는 떨어지는 상태와 점프 상태가 존재해서 구현하면 된다.


상태 입장, 퇴장

모든 State를 보면 Enter() 함수와 Exit()함수가 존재한다.
Enter()함수에서는 AddInputActionsCallback()
StartAnimation(애니메이션 해쉬값) 이 들어간다.

Exit()함수에서는 RemoveInputActionsCallbacks()마찬가지로
StopAnimation(애니메이션 해쉬값)이 들어간다.

가장 마지막 전의 노드에서는 마지막 노드로 가기 위한 메서드가 있다.
예를 들어 OnJumpStart()메서드가 있고
그 안에 ChangeState(해당 상태)로 진입하는 형태이다.

profile
게임 개발과 기획

0개의 댓글

관련 채용 정보