Class DecisionController
The primary component from the AI Planner package, governing planning and plan execution.
Inherited Members
Namespace: Unity.AI.Planner.Controller
Syntax
[HelpURL("https://docs.unity.cn/Packages/com.unity.ai.planner@0.2/manual/ConfigureScene.html")]
[AddComponentMenu("AI/Decision Controller")]
public sealed class DecisionController : MonoBehaviour
Properties
AutoUpdate
Define if the controller should automatically schedule planning and execute the current plan. If false, the scheduler can be updated via UpdateScheduler(Boolean) and, similarly, the execution can be updated via UpdateExecutor(Boolean).
Declaration
public bool AutoUpdate { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
CurrentActionKey
The action key for the current action being executed.
Declaration
public IActionKey CurrentActionKey { get; }
Property Value
Type | Description |
---|---|
IActionKey |
CurrentPlan
The current plan to be executed.
Declaration
public IPlan CurrentPlan { get; }
Property Value
Type | Description |
---|---|
IPlan |
CurrentStateData
State data for the controller's current state.
Declaration
public IStateData CurrentStateData { get; }
Property Value
Type | Description |
---|---|
IStateData |
CurrentStateKey
The state key of the current state, as used by the controller to track the execution of the plan.
Declaration
public IStateKey CurrentStateKey { get; }
Property Value
Type | Description |
---|---|
IStateKey |
Initialized
Indicates if the decision controller has been initialized.
Declaration
public bool Initialized { get; }
Property Value
Type | Description |
---|---|
Boolean |
IsIdle
Returns whether the controller is currently idle (i.e. not planning and not executing actions)
Declaration
public bool IsIdle { get; }
Property Value
Type | Description |
---|---|
Boolean |
PlanExecutionSettings
Settings for control of the execution of plans.
Declaration
public PlanExecutionSettings PlanExecutionSettings { get; set; }
Property Value
Type | Description |
---|---|
PlanExecutionSettings |
PlanExecutionStatus
Status of the execution fo the current plan.
Declaration
public PlanExecutionStatus PlanExecutionStatus { get; }
Property Value
Type | Description |
---|---|
PlanExecutionStatus |
PlannerSettings
Settings for the control of the planning algorithm iterating on the current plan.
Declaration
public PlannerSettings PlannerSettings { get; set; }
Property Value
Type | Description |
---|---|
PlannerSettings |
Methods
Initialize()
Initialize and create the executor instance
Declaration
public void Initialize()
UpdateExecutor(Boolean)
Updates execution of the plan. If the plan execution criteria are satisfied, the executor will enact the next action of the plan.
Declaration
public void UpdateExecutor(bool forceAct = false)
Parameters
Type | Name | Description |
---|---|---|
Boolean | forceAct | Force the execution of the next action in the plan. |
UpdateScheduler(Boolean)
Updates the planner scheduler. If the previous planning job has not finished, the scheduler will not scheduler new planning jobs unless forceComplete is true.
Declaration
public void UpdateScheduler(bool forceComplete = false)
Parameters
Type | Name | Description |
---|---|---|
Boolean | forceComplete | Force the scheduler to complete previous planning jobs before scheduling new iterations. |
UpdateStateWithWorldQuery()
Uses a world query to update the current state used for planning and acting.
Declaration
public void UpdateStateWithWorldQuery()
Events
stateUpdated
An event triggered after the current state has been updated
Declaration
public event Action stateUpdated
Event Type
Type | Description |
---|---|
Action |