A* Pathfinding Project  3.0.9
The A* Pathfinding Project for Unity
Seeker Class Reference

Handles path calls for a single unit. More...

+ Collaboration diagram for Seeker:

List of all members.

Public Types

enum  ModifierPass { PreProcess, PostProcessOriginal, PostProcess }  

Public Member Functions

Path GetCurrentPath ()  Returns path.
void Awake ()  
void OnDestroy ()  
void RegisterModifier (IPathModifier mod)  
void DeregisterModifier (IPathModifier mod)  
void RunModifiers (ModifierPass pass, Path p)  
bool IsDone ()  Is the current path done calculating.
void OnPathComplete (Path p)  Called when a path has completed.
void OnPathComplete (Path p, bool runModifiers, bool sendCallbacks)  Called when a path has completed.
void OnPartialPathComplete (Path p)  Called for each path in a MultiTargetPath.
void OnMultiPathComplete (Path p)  Called once for a MultiTargetPath.
Path GetNewPath (Vector3 start, Vector3 end)  Returns a new path instance.
Path StartPath (Vector3 start, Vector3 end)  Call this function to start calculating a path.
Path StartPath (Vector3 start, Vector3 end, OnPathDelegate callback)  Call this function to start calculating a path.
Path StartPath (Vector3 start, Vector3 end, OnPathDelegate callback, int graphMask)  Call this function to start calculating a path.
Path StartPath (Path p, OnPathDelegate callback=null, int graphMask=-1)  Call this function to start calculating a path.
MultiTargetPath StartMultiTargetPath (Vector3 start, Vector3[] endPoints, bool pathsForAll, OnPathDelegate callback=null, int graphMask=-1)  Starts a Multi Target Path from one start point to multiple end points.
MultiTargetPath StartMultiTargetPath (Vector3[] startPoints, Vector3 end, bool pathsForAll, OnPathDelegate callback=null, int graphMask=-1)  Starts a Multi Target Path from multiple start points to a single target point.
MultiTargetPath StartMultiTargetPath (MultiTargetPath p, OnPathDelegate callback=null, int graphMask=-1)  Starts a Multi Target Path.
string StackTrace ()  
IEnumerator DelayPathStart (Path p)  
void OnDrawGizmos ()  

Public Variables

bool drawGizmos = true  
bool detailedGizmos = false  
bool saveGetNearestHints = true  Saves nearest nodes for previous path to enable faster Get Nearest Node calls.
StartEndModifier startEndModifier = new StartEndModifier ()  
OnPathDelegate pathCallback  Callback for when a path is completed.
OnPathDelegate preProcessPath  Called before pathfinding is started.
OnPathDelegate postProcessOriginalPath  For anything which requires the original nodes (Node[]) (before modifiers) to work.
OnPathDelegate postProcessPath  Anything which only modifies the positions (Vector3[])
Vector3[] lastCompletedVectorPath  
Node[] lastCompletedNodePath  

Protected Variables

Path path  The current path.
int lastPathID = 0  The path ID of the last path queried.

Private Variables

Node startHint  
Node endHint  
OnPathDelegate tmpPathCallback  Temporary callback only called for the current path.
List< IPathModifiermodifiers = new List<IPathModifier> ()  

Detailed Description

Handles path calls for a single unit.

This is a component which is meant to be attached to a single unit (AI, Robot, Player, whatever) to handle it's pathfinding calls. It also handles post-processing of paths using modifiers.

See also:
Pathfinding interface
Examples:
EndingCondition.cs, and MultiTargetPath.cs.

Member Function Documentation

Returns path.

Path GetNewPath ( Vector3  start,
Vector3  end 
)

Returns a new path instance.

The path will be taken from the path pool if path recycling is turned on.
This path can be sent to #StartPath(Path,OnPathDelegate) with no change, but if no change is required StartPath(Vector3,Vector3,OnPathDelegate) does just that.

 Seeker seeker = GetComponent (typeof(Seeker)) as Seeker;
 Path p = seeker.GetNewPath (transform.position, transform.position+transform.forward*100);
 p.nnConstraint = NNConstraint.Default; 
bool IsDone ( )

Is the current path done calculating.

Returns if the current path return true on IsDone or there is no path (path is null) This method is not reliable when switching scenes and/or stopping and resuming pathfinding in any way

See also:
Pathfinding::Path::IsDone
Version:
Added in 3.0.8

Called once for a MultiTargetPath.

Only returns the path, does not post process.

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

Called for each path in a MultiTargetPath.

Only post processes the path, does not return it.

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
void OnPathComplete ( Path  p)

Called when a path has completed.

This should have been implemented as optional parameter values, but that didn't seem to work very well with delegates (the values weren't the default ones)

See also:
OnPathComplete(Path,bool,bool)
void OnPathComplete ( Path  p,
bool  runModifiers,
bool  sendCallbacks 
)

Called when a path has completed.

Will post process it and return it by calling tmpPathCallback and pathCallback

MultiTargetPath StartMultiTargetPath ( Vector3  start,
Vector3[]  endPoints,
bool  pathsForAll,
OnPathDelegate  callback = null,
int  graphMask = -1 
)

Starts a Multi Target Path from one start point to multiple end points.

A Multi Target Path will search for all the end points in one search and will return all paths if pathsForAll is true, or only the shortest one if pathsForAll is false.

Parameters:
startThe start point of the path
endPointsThe end points of the path
pathsForAllIndicates whether or not a path to all end points should be searched for or only to the closest one
callbackThe function to call when the path has been calculated
graphMaskMask used to specify which graphs should be searched for close nodes. See Pathfinding::NNConstraint::graphMask.
A* Pro Feature:
This parameter does not exist or has limited functionality in the Free version of the A* Pathfinding Project

callback and pathCallback will be called when the path has completed. Callback will not be called if the path is canceled (e.g when a new path is requested before the previous one has completed)

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
See also:
Pathfinding::MultiTargetPath
Example of how to use multi-target-paths
MultiTargetPath StartMultiTargetPath ( Vector3[]  startPoints,
Vector3  end,
bool  pathsForAll,
OnPathDelegate  callback = null,
int  graphMask = -1 
)

Starts a Multi Target Path from multiple start points to a single target point.

A Multi Target Path will search from all start points to the target point in one search and will return all paths if pathsForAll is true, or only the shortest one if pathsForAll is false.

Parameters:
startPointsThe start points of the path
endThe end point of the path
pathsForAllIndicates whether or not a path from all start points should be searched for or only to the closest one
callbackThe function to call when the path has been calculated
graphMaskMask used to specify which graphs should be searched for close nodes. See Pathfinding::NNConstraint::graphMask.
A* Pro Feature:
This parameter does not exist or has limited functionality in the Free version of the A* Pathfinding Project

callback and pathCallback will be called when the path has completed. Callback will not be called if the path is canceled (e.g when a new path is requested before the previous one has completed)

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
See also:
Pathfinding::MultiTargetPath
Example of how to use multi-target-paths
MultiTargetPath StartMultiTargetPath ( MultiTargetPath  p,
OnPathDelegate  callback = null,
int  graphMask = -1 
)

Starts a Multi Target Path.

Takes a MultiTargetPath and wires everything up for it to send callbacks to the seeker for post-processing.

Parameters:
pThe path to start calculating
callbackThe function to call when the path has been calculated
graphMaskMask used to specify which graphs should be searched for close nodes. See Pathfinding::NNConstraint::graphMask.
A* Pro Feature:
This parameter does not exist or has limited functionality in the Free version of the A* Pathfinding Project

callback and pathCallback will be called when the path has completed. Callback will not be called if the path is canceled (e.g when a new path is requested before the previous one has completed)

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
See also:
Pathfinding::MultiTargetPath
Example of how to use multi-target-paths
Path StartPath ( Vector3  start,
Vector3  end 
)

Call this function to start calculating a path.

Parameters:
startThe start point of the path
endThe end point of the path
Examples:
EndingCondition.cs.
Path StartPath ( Vector3  start,
Vector3  end,
OnPathDelegate  callback 
)

Call this function to start calculating a path.

Parameters:
startThe start point of the path
endThe end point of the path
callbackThe function to call when the path has been calculated

callback will be called when the path has completed. Callback will not be called if the path is canceled (e.g when a new path is requested before the previous one has completed)

Path StartPath ( Vector3  start,
Vector3  end,
OnPathDelegate  callback,
int  graphMask 
)

Call this function to start calculating a path.

Parameters:
startThe start point of the path
endThe end point of the path
callbackThe function to call when the path has been calculated
graphMaskMask used to specify which graphs should be searched for close nodes. See Pathfinding::NNConstraint::graphMask.
A* Pro Feature:
This parameter does not exist or has limited functionality in the Free version of the A* Pathfinding Project

callback will be called when the path has completed. Callback will not be called if the path is canceled (e.g when a new path is requested before the previous one has completed)

Path StartPath ( Path  p,
OnPathDelegate  callback = null,
int  graphMask = -1 
)

Call this function to start calculating a path.

Parameters:
pThe path to start calculating
callbackThe function to call when the path has been calculated
graphMaskMask used to specify which graphs should be searched for close nodes. See Pathfinding::NNConstraint::graphMask.
A* Pro Feature:
This parameter does not exist or has limited functionality in the Free version of the A* Pathfinding Project

callback will be called when the path has completed. Callback will not be called if the path is canceled (e.g when a new path is requested before the previous one has completed)


Member Data Documentation

int lastPathID = 0 [protected]

The path ID of the last path queried.

Path path [protected]

The current path.

OnPathDelegate pathCallback

Callback for when a path is completed.

Movement scripts should register to this delegate.
A temporary callback can also be set when calling StartPath, but that delegate will only be called for that path

Examples:
EndingCondition.cs, and MultiTargetPath.cs.
OnPathDelegate postProcessOriginalPath

For anything which requires the original nodes (Node[]) (before modifiers) to work.

OnPathDelegate postProcessPath

Anything which only modifies the positions (Vector3[])

OnPathDelegate preProcessPath

Called before pathfinding is started.

bool saveGetNearestHints = true

Saves nearest nodes for previous path to enable faster Get Nearest Node calls.

OnPathDelegate tmpPathCallback [private]

Temporary callback only called for the current path.

This value is set by the StartPath functions


The documentation for this class was generated from the following file:
 All Classes Functions Variables Enumerations Properties