Polarith AI
1.8
Orbit Class Reference

Description

By using Orbit the agent will move along the orbit of one target percept (back-end class).

It is more or less a SteeringBehaviour which demonstrates how easily new behaviours can be implemented with the help of our system. This behaviour does not belong to the classic steering algorithms. Moreover, it is used to ensure that the agent moves along the AIMOrbit.Target's orbit. One special feature is that Orbit can easily be combined with other SteeringBehaviour instances. For example, in combination with PlanarAvoid, the agent moves along the orbit determined by Radius, and in parallel, it avoids objects. Note, the behaviour concentrates only on one target.

Back-end class of AIMSeek. This behaviour is thread-safe.

Inheritance diagram for Orbit:
SteeringBehaviour PerceptBehaviour< SteeringPercept >

Public Fields

PlaneType Plane = PlaneType.PlaneXY
 Determines the plane on which the orbit is mapped. More...
 
float Radius = 5f
 This is the radius which determines the size of the orbit. More...
 
float MinDeviation = 1f
 Determines how far the agent is able to move towards the object and away from the orbit. More...
 
float MaxDeviation = 1f
 Determines how far the agent is able to move away from the object and towards the orbit. More...
 
float DeltaAngle = 10f
 Specifies the target position on the orbit. 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< Structuresensor
 Quick access to the currently processed sensor. More...
 
IReceptor< Structurereceptor
 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 computed point on the orbit which is currently targeted (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

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 order to move along the orbit of the AIMOrbit.Target, the SteeringBehaviour.ResultDirection is obtained by the Radius and the positions of PerceptBehaviour<T>.Self and AIMOrbit.Target. 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...
 

Public Types

enum  PlaneType { PlaneXY, PlaneXZ, PlaneYZ }
 Determines the plane which is used to map the orbit into. More...
 
Imprint