Class MultiTargetPath Extends ABPath
A path which searches from one point to a number of different targets in one search or from a number of different start points to a single target.
This is faster than searching with an ABPath for each target if pathsForAll is true. This path type can be used for example when you want an agent to find the closest target of a few different options.
When pathsForAll is true, it will calculate a path to each target point, but it can share a lot of calculations for the different paths so it is faster than requesting them separately.
When pathsForAll is false, it will perform a search using the heuristic set to None and stop as soon as it finds the first target. This may be faster or slower than requesting each path separately. It will run a Dijkstra search where it searches all nodes around the start point until the closest target is found. Note that this is usually faster if some target points are very close to the start point and some are very far away, but it can be slower if all target points are relatively far away because then it will have to search a much larger region since it will not use any heuristics.
A* Pro Feature:
This is an A* Pathfinding Project Pro feature only. This function/class/variable might not exist in the Free version of the A* Pathfinding Project or the functionality might be limited.
The Pro version can be bought here
Version
Since 3.7.1 the vectorPath and path fields are always set to the shortest path even when pathsForAll is true.
Public Methods
Default constructor.
Public Static Methods
Public Variables
Callbacks to call for each individual path.
The closest target index (if any target was found)
How to calculate the heuristic.
False if the path goes from one point to multiple targets.
Stores all paths to the targets.
Target points specified when creating the path.
If true, a path to all targets will be returned, otherwise just the one to the closest one.
Target points specified when creating the path.
Indicates if the target has been found.
Stores all vector paths to the targets.
Public Enums
Inherited Public Members
Blocks until this path has been calculated and returned.
Returns if the node can be traversed.
Returns if the path can traverse a link between from and to and if to can be traversed itself.
Claim this path (pooling).
Current state of the path.
Construct a path with a start and end point.
Aborts the path because of an error.
Creates a fake path.
True for paths that want to search all nodes and not jump over nodes as optimizations.
May be called by graph nodes to get a special cost for some connections.
Returns penalty for the given tag.
Total Length of the path.
Returns the cost of traversing the given node.
True if this path is done calculating.
Returns the state of the path in the pathfinding pipeline.
Releases a path claim (pooling).
Waits until this path has been calculated and returned.
Calculate partial path if the target node cannot be reached.
Callback to call when the path is complete.
How long it took to calculate this path in milliseconds.
Which graph tags are traversable.
End node of the path.
End point of the path.
If the path failed, this is true.
Additional info on why a path failed.
Determines which heuristic to use.
Scale of the heuristic values.
Immediate callback to call when the path is complete.
Constraint for how to search for nodes.
End Point exactly as in the path request.
Start Point exactly as in the path request.
Holds the path as a Node array.
ID of this path.
Number of nodes this path has searched.
Start point in integer coordinates.
Start node of the path.
Start point of the path.
Penalties for each tag.
Provides additional traversal information to a path request.
Holds the (possibly post processed) path as a Vector3 list.
Private/Protected Members
Estimated cost from the specified node to the target.
Calculates the path until completed or until the time has passed targetTick.
Set chosenTarget to the index of the shortest path.
Always called after the path has been calculated.
Checks if the start node is the target and complete the path if that is the case.
Returns a debug string for this path.
Writes text shared for all overrides of DebugString to the string builder.
Writes text shared for all overrides of DebugString to the string builder.
Applies a special case for grid nodes.
Initializes the path.
Called when the path enters the pool.
Prepares the path.
Prepares low level path variables for calculation.
Reset all values to their default values.
Reset flag1 on all nodes after the pathfinding has completed (no matter if an error occurs or if the path is canceled)
Calls callback to return the calculated path.
Traces the calculated path from the end node to the start.
Sets the start and end points.
List of zeroes to use as default tag penalties.
The node currently being processed.
Saved original costs for the end node.
Target to use for H score calculations.
Target to use for H score calculation.
True if the Reset function has been called.
Determines if a search for an end node should be done.
The tag penalties that are actually used.
Tag penalties set by other scripts.
Internal linked list implementation.
Current best target for the partial path.
Data for the thread calculating this path.
Number of target nodes left to find.