Choose your operating system:
Windows
macOS
Linux
Module |
|
Header |
/Engine/Source/Runtime/AIModule/Classes/BehaviorTree/BTService.h |
Include |
#include "BehaviorTree/BTService.h" |
class UBTService : public UBTAuxiliaryNode
Behavior Tree service nodes is designed to perform "background" tasks that update AI's knowledge.
Services are being executed when underlying branch of behavior tree becomes active, but unlike tasks they don't return any results and can't directly affect execution flow.
Usually they perform periodical checks (see TickNode) and often store results in blackboard. If any decorator node below requires results of check beforehand, use OnSearchStart function. Keep in mind that any checks performed there have to be instantaneous!
Other typical use case is creating a marker when specific branch is being executed (see OnBecomeRelevant, OnCeaseRelevant), by setting a flag in blackboard.
Because some of them can be instanced for specific AI, following virtual functions are not marked as const:
OnBecomeRelevant (from UBTAuxiliaryNode)
OnCeaseRelevant (from UBTAuxiliaryNode)
TickNode (from UBTAuxiliaryNode)
OnSearchStart
If your node is not being instanced (default behavior), DO NOT change any properties of object within those functions! Template nodes are shared across all behavior tree components using the same tree asset and must store their runtime properties in provided NodeMemory block (allocation size determined by GetInstanceMemorySize() )
Name | Description | ||
---|---|---|---|
|
uint32: 1 |
bCallTickOnSearchStart |
Call Tick event when task search enters this node (SearchStart will be called as well) |
|
uint32: 1 |
bNotifyOnSearch |
If set, service will be notified about search entering underlying branch |
|
uint32: 1 |
bRestartTimerOnEachActivation |
If set, next tick time will be always reset to service's interval when node is activated |
|
float |
Interval |
Defines time span between subsequent ticks of the service |
|
float |
RandomDeviation |
Adds random range to service's Interval |
Name | Description | |
---|---|---|
|
UBTService ( |
Name | Description | ||
---|---|---|---|
|
GetStaticServiceDescription() |
Gets the description for our service. |
|
|
GetStaticTickIntervalDescription() |
Gets the description of our tick interval. |
|
|
InitNotifyFlags |
||
|
NotifyParentActivation ( |
||
|
OnSearchStart ( |
Called when search enters underlying branch this function should be considered as const (don't modify state of object) if node is not instanced! bNotifyOnSearch must be set to true for this function to be called Calling INIT_SERVICE_NODE_NOTIFY_FLAGS in the constructor of the service will set this flag automatically |
|
|
ScheduleNextTick ( |
Set next tick time |
Name | Description | ||
---|---|---|---|
|
TickNode ( |
Update next tick interval this function should be considered as const (don't modify state of object) if node is not instanced! bNotifyTick must be set to true for this function to be called Calling INIT_SERVICE_NODE_NOTIFY_FLAGS in the constructor of the service will set this flag automatically |
Name | Description | ||
---|---|---|---|
|
GetNodeIconName() |
Get the name of the icon used to display this node in the editor |
|
|
GetStaticDescription() |