Unity 최종 프로젝트 - 29

이준호·2024년 2월 20일
0
post-custom-banner

📌 Unity 최종 프로젝트



📌 Behavior Tree Change

원래 사용하던 BT로직을 새로 만든 BT구조에 옮기고 SO로 만들어 에디터를 활용하여 새롭게 구조를 리팩토링 하는 중이다.

➔ Existing Behavior Tree

  • 원래 이전부터 설계하고 사용했던 Enemy Basic 트리구조.



➔ New Behavior Tree

  • 새롭게 바뀐 BT에 원래 구조를 적용한 사진.

  • Unity 안에서도 따로 구조를 짜둔것을 보며 하지 않아도 어떻게 흘러가고 어디서 막히고 오류가 나는지 한눈에 확인이 가능해졌다.




➔ Improved Lists

  • 기존에 하나의 클래스에 Func를 사용하여 모든 액션 노드를 구현하고 생성자를 통해 구조를 만들어서 확인이 매우 어려웠다.

  • 위 사진처럼 각각 EnemyLogic, Action, Composite, Decorator, Core, Editor 등으로 각각 나눠서 모듈화 하였다.

  • 가독성과 유지보수성이 매우 증가하였다.












📌 개선해야할 점

➔ ScriptTemplates

  • Action Script를 새로 만들 때, 추상클래스를 상속받아 강제하는 추상 메서드들이 있는데 기본적으로 Action 타입의 스크립트를 생성하면 기본 로직이 짜여져있는 ScriptTemplate 를 만들면 훨씬 편하게 작업할 수 있다고 느껴졌다.

➔ Node List

  • Editor 에서 새로운 노드를 만들 때, 보기가 불편하다. 각 노드의 타입별로 카테고리를 만들어서 생성할 수 있도록 분류할 예정이다.

➔ 오류

    protected override void OnStart()
    {
        _overlapColliders =
            Physics.OverlapSphere(zombieData.transform.position, zombieData.detectDistance
                , zombieData.PLAYER_LAYER_MASK);
    }
  • 첫 액션 노드의 진입하면 위와 같은 오류가 발생중이다.

  • zombieData가 할당이 안되고 null인 상태여서 발생하는 오류로 예상하고 있다.

  • 가장 우선순위로 하여 고칠예정이다.

profile
No Easy Day
post-custom-banner

0개의 댓글