지금은 각 상태에다 stateEnter, stateUpdate, stateExit로 메서드 분리해놓고 수행할 모든 동작을 집어넣고 있는데요 나중에 캐릭터가 복잡해지면 기능별로 분리해줘야 할 것 같은데 이미 상태별로 분리되어 있어서 어떻게 스크립트를 또 분리시켜야할지 모르겠습니다. 굳이 할 필요 없을까요? 만약 된다면 어떤식으로 하는지 대충이라도 알고 싶습니다.
스트래티지를 이용한 인터페이스를 만들고 enter ,update , exit에 해당하는 로직에 DI를 통해 스트래티지 바꿔 끼우는 식으로 분리하던가. 근데 FSM으로 이정도까지 할바에 그냥 BT 좀 공부해서 구현하는게 편할듯
BT란게 있었군요 공부해보겠습니다 감사함다
각 스테이트의 엔터 업데이트 이런걸 델리게이트로 넣어주든가 아니면 스테이트 자체를 클래스로 만들어서 스테이트의 인스턴스를 넣어주든가
캐릭터가 뭐가 얼마나 복잡할지 모르겠는데 예를들면 정지 이동 공격 이런 큰걸 fsm으로 하고 공격 스테이트 안의 스킬 세부 구현은 또 별도 스킬시스템에서 굴리는 느낌
오 이런 방법도 있군요 델리게이트도 괜찮은 방법같고.. 고맙읍니다
만약 적캐릭터 ai라면 정말 간단한 것 말고는 fsm으로 온전히 구현하긴 힘듬. 종합적으로 판단하는 일종의 두뇌 클래스가 있고 걔가 fsm을 조종해서 상태를 바꾸는 구조가 무난함
그리고 구조는 정답이 없으니 그때그때 자기 상황에 맞춰 만드는 수밖에 없음. 어떨땐 그냥 하드코딩 복붙이나 ifelse 무한증식이 답일수도
말하신대로 정답이 없으니 ㅋㅋㅋ 어렵네요 플레이어 캐릭터인데 할게 많은 경우 fsm은 생각보다 잘 안쓰는 방법인가요?
할게 얼마나 많길래? fsm은 상태 전이가 딱 고정되서 정의된 경우에 적합함 적합하면 쓸수도 있음
캐릭터의 모든걸 fsm에 박을 필요 없음 캐릭터가 수행하는게 많으면 그 중 적합한 요소만 fsm으로 관리하는것도 방법 예를들면 애니메이션 컨트롤하는 부분만 뗀다던가
상태마다 많아도 200줄 안쪽으로 예상하고 있슴다 상태만 잘 챙기면 굳이 책임분리라던가 더 안해도 될라나요
줄 수론 모름 ㅋㅋㅋ 책임이 너무 집중됐는지 아닌지는 봐야알지 이렇겐 모름 잘 생각해서 해보셈
아ㅋㅋㅋ 그렇구나 무튼 감사합니다 방법은 많네요
http://m.blog.naver.com/desked/223545249587
- dc App
참고자료 감사합니다!