타겟이 있으면 추적하고, 없으면 정찰하면서 돌아다니는 로직을 구현하기 위해 행동트리에 Selector 추가
BTService를 상속받은 C++ Class 추가
블랙보드에 Object 타입의 Target 키 추가
TickNode 함수 구현
행동트리의 Selector에 C++ 클래스에서 추가한 SearchTarget 서비스 추가
새로운 Selector를 만들고 Blackboard Decorator 추가
공격할 수 있는지 여부를 판단하는 BTDecorater를 상속받은 C++ Class 추가
공격 범위안에 Target이 있는지 확인하는 CalculateRawConditionValue 함수 추가
행동트리에 CanAttack 데코레이터를 추가하여 공격이 가능하면 공격하고 불가능하면 타겟을 따라가도록 한다.
공격하는 기능을 수행할 BTTaskNode를 상속받은 C++ Class 추가
ExecuteTask에 공격 기능 구현
공격이 끝났음을 알리기 위해 캐릭터에 델리게이트 추가
공격을 수행하는 TaskNode에서 콜백 등록
행동트리에 타겟을 찾으면 공격하도록 만들어둔 Attack 노드 추가