비주얼 스크립팅 방식으로 말고 코드상에서 플레이어 및 몬스터 FSM이 애니메이터의 StateBehaviourMachine 등에서 이벤트를 받아야되는데
매번 이벤트랑 FSM 엮거나 비슷하게 이벤트 짜려고 하면 막히는데 노하우 있는 사람 있을까..?
비주얼 스크립팅 방식으로 말고 코드상에서 플레이어 및 몬스터 FSM이 애니메이터의 StateBehaviourMachine 등에서 이벤트를 받아야되는데
매번 이벤트랑 FSM 엮거나 비슷하게 이벤트 짜려고 하면 막히는데 노하우 있는 사람 있을까..?
유니티에서 FSM과 애니메이터의 이벤트를 코드로 엮는 방식은 몇 가지 접근 방식이 있습니다. 특히, 애니메이터의 StateMachineBehaviour와 FSM을 결합하는 방법을 잘 구조화하면 반복적으로 코드를 작성하지 않고 더 쉽게 관리할 수 있습니다. 1. StateMachineBehaviour로 이벤트 관리하기 2. FSM 클래스에서 이벤트 처리하기 3. 이벤트와 FSM의 연결을 확장 가능한 구조로 만들기
1.애니메이터의 각 상태(State)에 StateMachineBehaviour를 추가하고, 해당 클래스에서 상태 진입 및 종료 시 FSM에게 이벤트를 전달하는 방식입니다. 이 방법을 통해 상태 전환 시의 특정 로직을 쉽게 관리할 수 있습니다. 2. 위에서 만든 StateEventBehaviour가 애니메이터 상태에서 이벤트를 전달하면, FSM에서 이를 받아 처리할 수 있습니다. 이때 FSM 클래스에서 TriggerEvent 메서드를 구현하여 애니메이터에서 받은 이벤트를 처리합니다. 3. 각 이벤트를 코드에서 수동으로 추가하는 대신, Reflection이나 Delegate를 활용하여 FSMController에 이벤트를 동적으로 등록할 수도 있습니다. 이 방법은 관리할 상태가 많을 때 특히 유용합니다.
관련 코드까지 만들어 드리니 갓피티4.0을 구독하고 많은 이용 부탁드립니다.