본문 바로가기
Unreal/AI

[Unreal] Custom TaskNode

by 카피마스터 2023. 1. 16.

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