Pursue anticipates where the percept will be in the future and takes this position as a target (back-end class).
It functions analogously to the usual steering behaviour 'Pursue'. A predicted position of the percept is used to obtain the SteeringBehaviour.ResultDirection. In addition, the movement directions of the agent itself and the processed percept are considered. The less the movement directions match, the further away the future point is calculated.
Note, if there is no (= zero) velocity of PerceptBehaviour<T>.Self and PerceptBehaviour<T>.Percepts, Pursue works like Seek. Furthermore, the prediction is based on the assumption of a uniform rectilinear motion. If you want to use a uniformly accelerated motion, you must implement a new behaviour.
Back-end class of AIMPursue. This behaviour is thread-safe.
Public Fields | |
float | MaxPredictionTime = 2f |
Threshold for the maximum prediction time of the computed point. More... | |
bool | ForEachReceptor |
If set to true , the algorithm is applied for each receptor instead for each percept. More... | |
float | InnerRadius = 0.0f |
The minimum radius for considering percepts. More... | |
float | OuterRadius = 20f |
The maximum radius for considering percepts. More... | |
MappingType | RadiusMapping = MappingType.InverseLinear |
Determines how the startMagnitude is mapped according to the InnerRadius and OuterRadius. More... | |
Vector3 | ResultDirection |
The direction vector used for obtaining objective values. More... | |
float | ResultMagnitude |
The magnitude value used for obtaining objective values. More... | |
int | TargetObjective |
Defines the objective for writing values. More... | |
float | MagnitudeMultiplier = 1f |
Is multiplied to the ResultMagnitude in order to weight between different behaviours. More... | |
float | SensitivityOffset |
Is added to the Structure.Sensitivity as threshold for writing objective values. More... | |
ValueWritingType | ValueWriting = ValueWritingType.AssignGreater |
Sets the type for writing objective values. More... | |
LayerBlendingType | LayerBlending = LayerBlendingType.None |
Sets the operation for blending the behaviour results into the context. More... | |
LayerNormalizationType | LayerNormalization = LayerNormalizationType.None |
Sets the method for normalizing intermediate objective values while they are blended into the context. More... | |
MappingType | ValueMapping = MappingType.InverseLinear |
Sets the mapping type for obtaining objective values. More... | |
bool | UseSignificance = true |
Determines if the SteeringPercept.Significance (if there is a AIMSteeringTag) is multiplied to the ResultMagnitude in order to weight between different percepts. More... | |
bool | UseSensorProjection = true |
If true , Sensor.ProjectionMode is used as VectorProjection. More... | |
VectorProjectionType | VectorProjection = VectorProjectionType.None |
Sets the type for projecting the perceived vector data into a plane. More... | |
PresetVelocityType | PresetVelocity = PresetVelocityType.None |
If the value is anything other than PresetVelocityType.None, a game object's rotation and default forward direction is used to approximate its actual velocity. More... | |
PredictionType | Prediction = PredictionType.None |
If set to anything other than PredictionType.None, the position of the Self percept is updated according to the given velocity. More... | |
float | PredictionMagnitude = 0.0f |
Scales the velocity vector used for predicting the possible future position of an agent if Prediction is set to PredictionType.PredictionMagnitude. More... | |
readonly IList< T > | Percepts |
All percepts which are relevant for an agent. More... | |
Protected Fields | |
Vector3 | startDirection |
Direction from the self position to the percept position (including distance magnitude). More... | |
float | startMagnitude |
Magnitude obtained from mapping the percept position relative to InnerRadius and OuterRadius. More... | |
float | sqrInnerRadius |
Squared InnerRadius. More... | |
float | sqrOuterRadius |
Squared OuterRadius. More... | |
readonly SteeringPercept | self = new SteeringPercept() |
The data of the associated agent itself (read only). More... | |
readonly SteeringPercept | percept = new SteeringPercept() |
The data of the currently processed percept (read only). More... | |
IList< float > | objective |
Quick access to the currently processed objective. More... | |
ISensor< Structure > | sensor |
Quick access to the currently processed sensor. More... | |
IReceptor< Structure > | receptor |
Quick access to the currently processed receptor. More... | |
Structure | structure |
Quick access to the currently processed structure. More... | |
Vector3 | velocity = Vector3.forward |
The forward direction the agent moves towards and/or looks at by default. More... | |
Properties | |
Vector3 | TargetPosition [get] |
The predicted point of the percept (read only). More... | |
override bool | forEachPercept [get] |
Determines if PerceptSteering is called within SteeringBehaviour.Behave (read only). More... | |
override bool | forEachReceptor [get] |
Determines if ReceptorSteering is called within SteeringBehaviour.Behave (read only). More... | |
override SteeringPercept | Self [get, set] |
The data of the associated agent itself. More... | |
Public Methods | |
override void | Behave () |
This method executes the main context steering algorithm and is called within Context.Evaluate in order to set/modify objective values for the associated Context.Problem. More... | |
Protected Methods | |
override bool | StartSteering () |
In addition to the filter process which is applied for each percept in RadiusSteeringBehaviour.StartSteering, a multiplier is computed which determines how well the velocity directions of the PerceptBehaviour<T>.Percepts and PerceptBehaviour<T>.Self match. More... | |
override void | PerceptSteering () |
Computes the TargetPosition for the currently processed percept based on its velocity and position relative to the agent under the assumption of an uniform rectilinear motion. More... | |
override void | ReceptorSteering () |
Computes the TargetPosition for the currently processed percept based on its velocity and position relative to the agent under the assumption of an uniform rectilinear motion. More... | |