UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AITask.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
6#include "GameplayTask.h"
7#include "UObject/Package.h"
8#include "AITask.generated.h"
9
10class AActor;
11class AAIController;
12
13UENUM()
15{
16 Lowest = 0,
17 Low = 64, //FGameplayTasks::DefaultPriority / 2,
18 AutonomousAI = 127, //FGameplayTasks::DefaultPriority,
19 High = 192, //(1.5 * FGameplayTasks::DefaultPriority),
20 Ultimate = 254,
21};
22
23UCLASS(Abstract, BlueprintType, MinimalAPI)
25{
27protected:
28
29 UPROPERTY(BlueprintReadOnly, Category="AI|Tasks")
30 TObjectPtr<AAIController> OwnerController;
31
33
34public:
36
37 static AIMODULE_API AAIController* GetAIControllerForActor(AActor* Actor);
38 AAIController* GetAIController() const { return OwnerController; };
39
42
44 AIMODULE_API void RequestAILogicLocking();
45
46 template <class T>
48 {
49 return NewAITask<T>(*T::StaticClass(), AIOwner, InTaskOwner, InstanceName);
50 }
51
52 template <class T>
54 {
55 return NewAITask<T>(*T::StaticClass(), AIOwner, InTaskOwner, InPriority, InstanceName);
56 }
57
58 template <class T>
59 static T* NewAITask(AAIController& AIOwner, FName InstanceName = FName())
60 {
61 return NewAITask<T>(*T::StaticClass(), AIOwner, AIOwner, InstanceName);
62 }
63
64 template <class T>
65 static T* NewAITask(AAIController& AIOwner, EAITaskPriority InPriority, FName InstanceName = FName())
66 {
67 return NewAITask<T>(*T::StaticClass(), AIOwner, AIOwner, InPriority, InstanceName);
68 }
69
70 template <class T>
71 static T* NewAITask(const UClass& Class, AAIController& AIOwner, IGameplayTaskOwnerInterface& InTaskOwner, FName InstanceName = FName())
72 {
74 TaskInstance->InstanceName = InstanceName;
75 TaskInstance->InitAITask(AIOwner, InTaskOwner);
76 return TaskInstance;
77 }
78
79 template <class T>
81 {
83 TaskInstance->InstanceName = InstanceName;
84 TaskInstance->InitAITask(AIOwner, InTaskOwner, (uint8)InPriority);
85 return TaskInstance;
86 }
87};
EAITaskPriority
Definition AITask.h:15
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UPackage * GetTransientPackage()
Definition Obj.cpp:5819
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition AIController.h:91
Definition Actor.h:257
FName Tag const
Definition Actor.h:3810
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
Definition GameplayTaskOwnerInterface.h:21
Definition AITask.h:25
static T * NewAITask(AAIController &AIOwner, IGameplayTaskOwnerInterface &InTaskOwner, EAITaskPriority InPriority, FName InstanceName=FName())
Definition AITask.h:53
static T * NewAITask(const UClass &Class, AAIController &AIOwner, IGameplayTaskOwnerInterface &InTaskOwner, FName InstanceName=FName())
Definition AITask.h:71
static T * NewAITask(const UClass &Class, AAIController &AIOwner, IGameplayTaskOwnerInterface &InTaskOwner, EAITaskPriority InPriority, FName InstanceName=FName())
Definition AITask.h:80
static T * NewAITask(AAIController &AIOwner, EAITaskPriority InPriority, FName InstanceName=FName())
Definition AITask.h:65
static T * NewAITask(AAIController &AIOwner, FName InstanceName=FName())
Definition AITask.h:59
static T * NewAITask(AAIController &AIOwner, IGameplayTaskOwnerInterface &InTaskOwner, FName InstanceName=FName())
Definition AITask.h:47
Definition Class.h:3793
Definition GameplayTask.h:146
Definition ObjectPtr.h:488