비헤이비어 트리에서 태스크는 독립적으로 실행될 수 없고, 반드시 컴포짓 노드Composite Node 를 거쳐 실행되어야 함.
컴포짓 노드에는 대표적으로 셀렉터Selector와 시퀀스Sequence가 있음.
- Sequence: 연결된 Task들을 false 결과가 나올 때까지 왼쪽에서 오른쪽으로 수행함
- Selector: 지정된 조건을 기준으로 조건에 맞는 노드를 실행함
비헤이비어 트리는 태스크를 실행할 때 태스크 클래스의 ExecuteTask라는 멤버 함수를 실행하는데, ExecuteTask는 다음 넷 중 하나의 값을 반환해야 함.
- Aborted: 태스크 실행 중 중단됨. 결과적으로 실패함.
- Failed: 태스크를 수행했지만 실패함
- Succeeded: 태스크를 성공적으로 수행함.
- InProgress: 태스크를 계속 수행하는 중임. 실행 결과는 향후 알려줄 예정임.
ExecuteTask 함수의 실행 결과에 따라 컴포짓 내의 다음 태스크를 계속 수행할지, 중단할지 여부가 결정됨. 현재 사용 중인 시퀀스 컴포짓은 자신에 속한 태스크를 실패할 때까지 계속 실행함.