front-end: AIMUnityPathfinding
inherits from: AIMPathfinding
The Unity Pathfinding component acts as an adapter between Polarith AI and Unity's Navigation and Pathfinding system. When you have already set up an Unity NavMesh in your scene, you need to add this component for integrating Polarith AI in your application. The simplest method to achieve a result is to setup an agent having a Follow Waypoints behaviour for interacting with the points computed by Unity's pathfinding. As long as the DestinationGameObject
is set properly, an appropriate path leading to the target is calculated at runtime.
In detail, Unity Pathfinding creates a dummy NavMeshAgent with all fields set to a neutral value such that no further transformation interactions are done. So the NavMeshAgent is only used to asynchronously request the calculation of a path based on the scene's NavMesh. The conditions for (re-)calculating paths can be controlled through the Validator
mechanism provided by Polarith AI. All available validators are listed in the property section below.
Note, we recommend to attach the Unity Pathfinding component to a (child) game object which has got a separate transform with respect to the Polarith AI agent. This way, the utilized NavMeshAgent cannot influence the agent (Context) transform regardless your Unity version.
This component has got the following specific properties.
Property | Description |
---|---|
PointCount | Shows the number of points contained in the path (editor only). |
Points | Displays the point coordinates of the current path. Due to performance reasons with respect to Unity's editor, only the last 50 points are shown. In code, you can use the method GetPoints to obtain the current point data. |
DestinationGameObject | The final target the path is leading to. If none is set, no path can be calculated. Note that the Destination can also be set directly via scripting. |
DistanceValidator | If enabled, this validator checks the distance of the agent to the path (nearest edge). If this distance is greater than the specified MaxDistance , the path is recalculated. |
TimeValidator | If enabled, this validator enforces a path recalculation after the given ElapsedTime has passed. |
TargetValidator | If enabled, this validator tracks the position of the DestinationGameObject . If the positional difference is greater than or equal to the set MaxDeltaPosition , then a new path is recalculated. |
NavMeshValdidator | If enabled, this validator triggers a path recalculation whenever the NavMeshAgent requests one, e.g., if the AreaMask has changed. |
Since the Unity Pathfinding component is an adapter, the actual path calculation is done by Unity and all features like AreaMask can be used. Of course, using the NavMeshAgent as underlying technology has some consequences:
For further reference, see the corresponding Unity Manual page.