유한 상태 머신을 만들면서 작동하는 모습을 좀더 큰 그림으로 그려보고 싶었다.
UML을 잘 그리는 편은 아니지만 일단 만들어져있는 코드를 StarUML로 작성했다.

다시 살펴보니 놀랐던 점은 Player Base State가Player State Machine을 상속받지 않고 선언을 해서 사용했다는 점이다.
땅에 붙어있는 상태, 공격하는 상태, 공중에 떠있는 상태로 세개로 나눈 뒤에
해당 상태에서 일어날 수 있는 상태로 또 파생된다.
걷기, 뛰기, 기본상태 3가지로 존재한다.
상태 머신은 필요 하다면 여기서 하나 더 상태를 늘릴 수 있다는 게 장점이다.
공격은 콤보 어택으로도 발전할 수 있고,
Player Air State는 떨어지는 상태와 점프 상태가 존재해서 구현하면 된다.
모든 State를 보면 Enter() 함수와 Exit()함수가 존재한다.
Enter()함수에서는 AddInputActionsCallback() 와
StartAnimation(애니메이션 해쉬값) 이 들어간다.
Exit()함수에서는 RemoveInputActionsCallbacks()마찬가지로
StopAnimation(애니메이션 해쉬값)이 들어간다.
가장 마지막 전의 노드에서는 마지막 노드로 가기 위한 메서드가 있다.
예를 들어 OnJumpStart()메서드가 있고
그 안에 ChangeState(해당 상태)로 진입하는 형태이다.