숙련 주차에서 적의 AI 패턴을 상태패턴을 이용하여 구현하였다. 적마다 패턴은 다르지만 각각의 상태에서 하는 행동은 동일했기 때문에 각각의 적마다 전환 조건만 설정해주었다.
이번 강의에서는 플레이어와 적을 상태패턴을 이용하여 구현하였는데 각각의 상태의 Update에서 다른 상태로 전환되는 조건을 설정하고 애니메이터의 Sub-state Machine을 이용하여 각 상태에서 다른 상태로 부드럽게 전환되었다.
저번 숙련주차에서 적의 AI 코드는 데이터와 전환 조건을 가진 Creature / 상태와 동작 / 현재 상태를 갖고 다른 상태로 전환해주는 StateMachine로 나뉘어 있는데 좀 더 개선할 여지가 있어 보인다.
Creature의 종류가 많아지고 나중에 확장될 것을 생각하면 서로 다른 행동을 하는 Creature에 대해 각각의 Concrete State를 작성하고 그 안에서 상태 전환을 판단하여 다른 상태로 전환할 수 있는 구조로 작성하면 나중에 추가될 새로운 종류의 몬스터에 대응하기 쉽고 가독성도 높일 수 있을 것 같다.
-> 나중에 다시 볼 때 보다 쉽게 구분할 수 있게 각각의 Creature의 종류마다 폴더링을 해준다.
StringToHash 사용하여 Animation Data를 관리한다.
나중에 동작이 늘어나 animation이 많아지면 animator에서 Sub-state Machine을 사용하여 큰 상태(Ground State, Attack State 등) 안에서 작은 상태(Idle, Run, Walk 등)의 애니메이션을 넣어 관리한다.