A simple SteeringBehaviour which is intended to let the agent wander around randomly (back-end class).
Using the AngleDeviationMax and TimeDeviationMax parameters, it can be controlled how the agent will move. A higher value for AngleDeviationMax results in more significant direction changes. TimeDeviationMax determines how often the behaviour will decide to change its direction. It can either choose to move steady, based on the Steadiness, or to generate a new random angle. Note, the behaviour sticks to the determined angle until it makes its next decision.
Back-end class of AIMWander. This behaviour is thread-safe.
Public Fields | |
Vector3 | Up = Vector3.forward |
Obsolete, use PlanarMappingType instead. More... | |
float | AngleDeviationMin |
The lower limit for randomly generated angles regarding new wander directions. More... | |
float | AngleDeviationMax = 25 |
The upper limit for randomly generated angles regarding new wander directions. More... | |
float | TimeDeviationMin |
The lower limit for randomly determined values used as duration to generate new wander directions. More... | |
float | TimeDeviationMax = 1 |
The upper limit for randomly determined values used as duration to generate new wander directions. More... | |
float | Steadiness |
Every time the behaviour makes a new random decision, it can either decide to go steady until the next decision or generate a random angle. 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 | |
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 | |
PlanarMappingType | PlanarMappingType [get] |
Determines if the behaviour result gets mapped to either the XY-plane (2D mode), the XZ-plane (3D with ground), the plane is determined automatically via the attached sensor, or whether no mapping is used at all (general 3D) (read only). More... | |
override bool | forEachPercept [get] |
Determines if SteeringBehaviour.PerceptSteering is called within SteeringBehaviour.Behave (read only). More... | |
override bool | forEachReceptor [get] |
Determines if SteeringBehaviour.ReceptorSteering is called within SteeringBehaviour.Behave (read only). More... | |
override SteeringPercept | Self [get, set] |
The data of the associated agent itself. More... | |
Public Methods | |
Wander () | |
Constructs an instance of Wander. More... | |
void | SetPlanarMappingType (PlanarMappingType mappingType, PlanarOrientationType orientation=PlanarOrientationType.PlaneXY) |
Sets the PlanarMappingType and adapts the internal up vector based on the mapping type and, in case of PlanarMappingType.Automatic, determines the best up vector based on both the mapping type and the given orientation. More... | |
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 () |
Since this behaviour is independent of other percepts, the whole algorithm is executed in this method. More... | |
virtual void | PerceptSteering () |
This method gets called once for each processed percept. More... | |
virtual void | ReceptorSteering () |
This method gets called for each active shape receptor for each processed percept. More... | |