[ 개발 일기 ] FSM 디자인 고민중..

2024. 5. 28. 16:00게임 개발/개발 일기

 

 현재 FSM 디자인을 고민 중이다.

Chicken Fly에서 Boss AI를 짤 때 사용할 겸 제작해보고 있는데 뭔가 마음에 들지 않는다..

 

일단 원래 짜려고 했던 건 Root AI 오브젝트 아래에 여러 State가 있고, Editor를 활용해 Transition과 조건들을 설정할 수 있게 제작하려고 했다. 그런데 FSM_State를 상속한다고 Editor가 상속되지는 않아서 실패했다.

 

그래서 일단 오브젝트 밑에 자식으로 오브젝트를 생성해 AI가 실행되도록 해놨는데, 뭔가 오브젝트 밑에 여러 오브젝트가 들어가 한 눈에 잘 보이지가 않는다.

( 나중에 버그 나면 쉽게 못 찾을 것 같다. )

 

 

 다른 작품에서는 이렇게 AI_Controller를 상속하는 오브젝트를 만들어서 State 구조를 코드에서 제작했다.

근데 완전 새로운 AI를 만들 때마다 Enum을 만들고, 코드를 생성해야된다는 점이 조금 마음에 들지 않았다.

 

그래서 새로운 FSM 구조를 디자인해보고 있었는데, 아무리봐도 맨 위에 디자인은 버그 찾기도 힘들고 어려울 것 같아서 현재 생각하고 있는 방법은 State 구조는 코드에서 제작하지만, Enum값은 사용하지 않는 형식이다.

 

일단은 Unity 기능을 조금 더 찾아보고 생각할 예정이다. Unity Graph View, Scriptable Object 등 에디터에서 사용할 수 있는 기능들이 있기에 찾아본 후 FSM 구조를 다시 수정할 것이다.