UBTTaskNode를 상속 받고 필요한 함수를 재정의
중요 재정의 함수들
virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
- TaskNode가 실행될때 호출
virtual void TickTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds) override;
- TaskNode가 실행되는 동안 매틱 호출
- TickTask를 사용하려면
1. 생성자에서 bNotifyTick = true로 설정
2. ExecuteTask()의 리턴 값을 EBTNodeResult::InProgress로 리턴
virtual uint16 GetInstanceMemorySize() const override;
- TaskNode에서 사용할 정보가 있을때 관련된 구조체를 선언하고 해당 사이즈를 설정
- 함수 호출시 인자로 들어오는 NodeMemory를 구조체로 캐스팅하여 정보를 사용
TickTask에서 Task를 종료 시키려면 다음 함수를 호출
void FinishLatentTask(UBehaviorTreeComponent& OwnerComp, EBTNodeResult::Type TaskResult) const;
결과 enum
UENUM(BlueprintType)
namespace EBTNodeResult
{
// keep in sync with DescribeNodeResult()
enum Type
{
Succeeded, // finished as success
Failed, // finished as failure
Aborted, // finished aborting = failure
InProgress, // not finished yet
};
}
'Unreal > AI' 카테고리의 다른 글
[Unreal] Decorator Blackboard (0) | 2024.08.04 |
---|---|
[Unreal] BehaviorTree 기본 설정 (0) | 2023.11.22 |
[Unreal] TaskNode에서 멤버 변수 사용 (0) | 2023.01.29 |