BTTaskNode는 Behavior Tree에서 사용된다.
BTTaskNode는 ExecuteTask로 한번 실행되고 TickTask는 FinishLatentTask가 실행될 때까지 매 틱마다 실행된다.
함수들은 EBTNodeResult를 반환하고 EBTNodeResult의 종류는 Succeded,Failed,InProgress,Aborted 4가지가 있다.
EBTNodeResult::Type UMyBTTask::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
if (!OwnerComp.GetAIOwner())
{
return EBTNodeResult::Failed;
}
//Do logic here
return EBTNodeResult::Succeeded;
}
ExecuteTask의 기본 형태로 위 코드는 Behavior Tree의 OwnerComp가 존재하지 않을 경우 Fail, 아니면 Succeed를 반환한다.
EBTNodeResult::Type UBTTask_MonsterFireWeapon::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
if (!OwnerComp.GetAIOwner())
{
return EBTNodeResult::Failed;
}
return EBTNodeResult::InProgress;
}
void UBTTask_MonsterFireWeapon::TickTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds)
{
if ( TickTask를 마무리하는 조건 )
{
FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded);
}
}
TickTask를 이용하고 싶다면 먼저 ExecuteTask를 선언하고 EBTNodeResult::InProgress를 반환한다. TickTask에서는 매 틱마다 반복하다가 FinishLatentTask로 TickTask를 종료한다.
'Unreal' 카테고리의 다른 글
| [Unreal] Lyra 프로젝트 분석 - 02. Experience (0) | 2025.02.06 |
|---|---|
| [Unreal] Lyra 프로젝트 분석 - 01. AssetManager (0) | 2025.02.05 |
| [Unreal] Unfallen 플레이 영상 (0) | 2022.06.17 |
| [Unreal] 카메라 회전 관련 변수 (0) | 2022.03.27 |
| [Unreal] 언리얼에서 auto 사용 (0) | 2022.03.27 |