UBTTask_AgentStep
class UBTTask_AgentStep : public UBTTaskNode, public IInferenceAgent一个 BT 任务,用于运行一个推理步骤以确定模型采取的行动。
依赖项
此类型依赖于
- FActTickFunction
- FThinkTickFunction
- IInferenceAgent
- UAbstractBrain
- UAbstractObserver
- UAbstractPolicy
- UActuator
- UInteractionManager
继承自: public UBTTaskNode, public IInferenceAgent
公共接口
构造函数
UBTTask_AgentStep
UBTTask_AgentStep(FObjectInitializer const &ObjectInitializer)任务构造函数。
参数
| 名称 | 类型 | 默认 |
|---|---|---|
ObjectInitializer | FObjectInitializer const & | “ |
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 28 行, 第 1 列)
实现: Schola/Source/Schola/Private/Inference/BT/BTT_AgentStep.cpp (第 5-11 行)
公共函数
GetControlledPawn
inline virtual APawn * GetControlledPawn() override获取代理的控制 Pawn。
返回值:指向控制 Pawn 的指针。
返回值: APawn *
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 74 行, 第 15 列)
GetInteractionManager
inline virtual UInteractionManager * GetInteractionManager() override获取用于收集执行器和观察值的交互管理器。
返回值:指向交互管理器对象的指针。
返回值: UInteractionManager *
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 79 行, 第 29 列)
GetBrain
inline virtual UAbstractBrain * GetBrain() override获取代理的大脑。
返回值:指向大脑对象的指针。
返回值: UAbstractBrain *
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 84 行, 第 24 列)
GetPolicy
inline virtual UAbstractPolicy * GetPolicy() override获取代理的策略。
返回值:指向策略对象的指针。
返回值: UAbstractPolicy *
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 89 行, 第 25 列)
GetAllObservers
inline virtual TArray<UAbstractObserver *> GetAllObservers() override获取附加到控制 Pawn 的观察值以及附加到代理的观察值。
返回值:观察值对象数组。
返回值: TArray<UAbstractObserver *>
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 94 行, 第 16 列)
GetAllActuators
inline virtual TArray<UActuator *> GetAllActuators() override获取附加到控制 Pawn 的执行器以及附加到代理的执行器。
返回值:执行器对象数组。
返回值: TArray<UActuator *>
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 102 行, 第 16 列)
GetStatus
inline virtual EAgentStatus GetStatus() override获取代理的状态。
返回值:代理的状态。
返回值: EAgentStatus
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 110 行, 第 22 列)
SetStatus
inline virtual void SetStatus(EAgentStatus NewStatus) override设置代理的状态。
参数
NewStatus(EAgentStatus) – 要设置的新状态。
属性: inline, virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 115 行, 第 14 列)
TickTask
virtual void TickTask(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory, float DeltaSeconds) override参数
| 名称 | 类型 | 默认 |
|---|---|---|
OwnerComp | UBehaviorTreeComponent & | “ |
NodeMemory | uint8 * | “ |
DeltaSeconds | float | “ |
属性: virtual
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 120 行, 第 14 列)
实现: Schola/Source/Schola/Private/Inference/BT/BTT_AgentStep.cpp (第 23-30 行)
公共成员
UInteractionManager * InteractionManager
UInteractionManager * InteractionManager = = CreateDefaultSubobject<UInteractionManager>(TEXT("InteractionManager"))定义代理如何与环境交互的对象。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 32 行, 第 21 列)
UAbstractPolicy * Policy
UAbstractPolicy * Policy定义一个异步函数 f:Observations->Actions,用于为代理做出决策的对象。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 36 行, 第 17 列)
UAbstractBrain * Brain
UAbstractBrain * Brain定义决策请求如何同步的对象。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 40 行, 第 16 列)
TArray<UAbstractObserver *> Observers
TArray<UAbstractObserver *> Observers收集代理观察值的观察值列表。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 44 行, 第 8 列)
TArray<UActuator *> Actuators
TArray<UActuator *> Actuators执行代理动作的执行器列表。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 48 行, 第 8 列)
EAgentStatus Status
EAgentStatus Status = = EAgentStatus::Running代理的状态。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 52 行, 第 14 列)
bool bRegisterAgentStep
bool bRegisterAgentStep = = true代理是否应设置为自动执行操作。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 56 行, 第 6 列)
FThinkTickFunction ThinkTickFunction
FThinkTickFunction ThinkTickFunction = = FThinkTickFunction(this)来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 60 行, 第 20 列)
FActTickFunction ActTickFunction
FActTickFunction ActTickFunction = = FActTickFunction(this, true)来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 64 行, 第 18 列)
bool bUseTickTask
bool bUseTickTask = = false是 tick 任务还是执行任务。
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 68 行, 第 6 列)
私有接口
私有函数
ExecuteTask
EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory)参数
| 名称 | 类型 | 默认 |
|---|---|---|
OwnerComp | UBehaviorTreeComponent & | “ |
NodeMemory | uint8 * | “ |
返回值: EBTNodeResult::Type
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 24 行, 第 21 列)
实现: Schola/Source/Schola/Private/Inference/BT/BTT_AgentStep.cpp (第 13-21 行)
Step
void Step(UBehaviorTreeComponent &OwnerComp)参数
| 名称 | 类型 | 默认 |
|---|---|---|
OwnerComp | UBehaviorTreeComponent & | “ |
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 131 行, 第 6 列)
实现: Schola/Source/Schola/Private/Inference/BT/BTT_AgentStep.cpp (第 32-46 行)
私有成员
bool bConnected
bool bConnected = = false与所有者 Pawn 的连接是否已建立。
属性: private
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 125 行, 第 6 列)
APawn * OwnerPawn
APawn * OwnerPawn执行此任务的 Pawn。
属性: private
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 129 行, 第 7 列)
EBTNodeResult::Type TaskResult
EBTNodeResult::Type TaskResult = = EBTNodeResult::InProgress属性: private
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 133 行, 第 21 列)
来源: Schola/Source/Schola/Public/Inference/BT/BTT_AgentStep.h (第 20 行, 第 1 列)