원래 사용하던 BT로직을 새로 만든 BT구조에 옮기고 SO로 만들어 에디터를 활용하여 새롭게 구조를 리팩토링 하는 중이다.
새롭게 바뀐 BT에 원래 구조를 적용한 사진.
Unity 안에서도 따로 구조를 짜둔것을 보며 하지 않아도 어떻게 흘러가고 어디서 막히고 오류가 나는지 한눈에 확인이 가능해졌다.
기존에 하나의 클래스에 Func를 사용하여 모든 액션 노드를 구현하고 생성자를 통해 구조를 만들어서 확인이 매우 어려웠다.
위 사진처럼 각각 EnemyLogic, Action, Composite, Decorator, Core, Editor 등으로 각각 나눠서 모듈화 하였다.
가독성과 유지보수성이 매우 증가하였다.
protected override void OnStart()
{
_overlapColliders =
Physics.OverlapSphere(zombieData.transform.position, zombieData.detectDistance
, zombieData.PLAYER_LAYER_MASK);
}
첫 액션 노드의 진입하면 위와 같은 오류가 발생중이다.
zombieData가 할당이 안되고 null인 상태여서 발생하는 오류로 예상하고 있다.
가장 우선순위로 하여 고칠예정이다.