Class MultiTargetPath Extends ABPath

Public

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 Variables

callbacks

Callbacks to call for each individual path.

Public
chosenTarget

The closest target index (if any target was found)

Public
endPointKnownBeforeCalculation

True if this path type has a well defined end point, even before calculation starts.

Public
inverted

False if the path goes from one point to multiple targets.

Public
nodePaths

Stores all paths to the targets.

Public
originalTargetPoints

Target points specified when creating the path.

Public
pathsForAll

If true, a path to all targets will be returned, otherwise just the one to the closest one.

Public
targetNodes

Nearest nodes to the targetPoints.

Public
targetPathCosts

The cost of the calculated path for each target.

Public
targetPoints

Target points specified when creating the path.

Public
targetsFound

Indicates if the target has been found.

Public
vectorPaths

Stores all vector paths to the targets.

Public

Inherited Public Members

Blocks until this path has been calculated and returned.

Claim (o)

Increase the reference count on this path by 1 (for pooling).

CompleteState

Current state of the path.

Public
Construct (..., [callback])

...

Error ()

Aborts the path because of an error.

Causes the path to fail and sets errorLog to msg.

FakePath (vectorPath, nodePath=null)

Creates a fake path.

Total Length of the path.

IsDone ()

True if this path is done calculating.

MarkerOpenCandidateConnectionsToEnd
Public Static Readonly
MarkerTrace
Public Static Readonly
OnVisitNode (ctx, pathNode, hScore, gScore)

Called for every node that the path visits.

PipelineState

Returns the state of the path in the pathfinding pipeline.

Public
Release (o, silent=…)

Reduces the reference count on the path by 1 (pooling).

UseSettings (settings)

Copies the given settings into this path.

Waits until this path has been calculated and returned.

calculatePartial

Calculate partial path if the target node cannot be reached.

Public
callback

Callback to call when the path is complete.

Public
cost

Total cost of this path as used by the pathfinding algorithm.

Public
duration

How long it took to calculate this path in milliseconds.

Public
endNode

End node of the path.

Public
endPoint

End point of the path.

Public
endPointKnownBeforeCalculation

True if this path type has a well defined end point, even before calculation starts.

Public
endingCondition

Optional ending condition for the path.

Public
error

If the path failed, this is true.

Public
errorLog

Additional info on why a path failed.

Public
heuristic

Determines which heuristic to use.

Public
heuristicScale

Scale of the heuristic values.

Public
immediateCallback

Immediate callback to call when the path is complete.

Public
nearestNodeConstraint

Constraint for how to search for nodes that are traversable by this path.

Public
nearestNodeDistanceMetric

Distance metric to use when searching for the start and end nodes in the graph.

Public
originalEndPoint

End Point exactly as in the path request.

Public
originalStartPoint

Start Point exactly as in the path request.

Public
path

Holds the path as a GraphNode list.

Public
pathID

ID of this path.

Public
searchedNodes

Number of nodes this path has searched.

Public
startNode

Start node of the path.

Public
startPoint

Start point of the path.

Public
traversalConstraint

Constrains which nodes the path can traverse.

Public
traversalCosts

Specifies the cost of traversing different nodes.

Public
vectorPath

Holds the (possibly post-processed) path as a Vector3 list.

Public

Private/Protected Members

CalculateStep (ctx, targetTick)

Calculates the path until completed or until the time has passed targetTick.

Set chosenTarget to the index of the shortest path.

Cleanup (ctx)

Always called after the path has been calculated.

DebugString (builder, logMode)

Returns a debug string for this path.

DebugStringPrefix (logMode, text)

Writes text shared for all overrides of DebugString to the string builder.

DebugStringSuffix (logMode, text)

Writes text shared for all overrides of DebugString to the string builder.

EndPointGridGraphSpecialCase (ctx, closestWalkableEndNode, originalEndPoint, targetIndex)

Applies a special case for grid nodes.

FindStartAndEndNodes (ctx, constraint)

Called when the path enters the pool.

OnFoundEndNode (ctx, pathNode, hScore, gScore)

Called when a valid node has been found for the end of the path.

Called when there are no more nodes to search.

Prepare (ctx)

Prepares the path.

PrepareBase (pathHandler)

Prepares low level path variables for calculation.

Reset ()

Reset all values to their default values.

Calls callback to return the calculated path.

Setup (start, ...)
Trace (ctx, fromPathNodeIndex, [reverse])

UpdateStartEnd (start, end)

Sets the start and end points.

completeState

Backing field for CompleteState.

Protected
hasBeenReset

True if the Reset function has been called.

Protected
hasEndPoint

Determines if a search for an end node should be done.

Protected
partialBestTargetGScore
Protected
partialBestTargetHScore
Protected
partialBestTargetPathNodeIndex

Current best target for the partial path.

Protected
targetNodeCount

Number of target nodes left to find.

Protected