Class FleePath Extends RandomPath

Public

Returns a path heading away from a specified point to avoid.

The search will terminate when G > length (passed to the constructor) + FleePath.spread.
Can be used to make an AI to flee from an enemy (cannot guarantee that it will not be forced into corners though :D )
// Call a FleePath call like this, assumes that a Seeker is attached to the GameObject
Vector3 thePointToFleeFrom = Vector3.zero;

// The path will be returned when the path is over a specified length (or more accurately when the traversal cost is greater than a specified value).
// A score of 1000 is approximately equal to the cost of moving one world unit.
int theGScoreToStopAt = 10000;

// Create a path object
FleePath path = FleePath.Construct (transform.position, thePointToFleeFrom, theGScoreToStopAt);
// This is how strongly it will try to flee, if you set it to 0 it will behave like a RandomPath
path.aimStrength = 1;
// Determines the variation in path length that is allowed
path.spread = 4000;

// Get the Seeker component which must be attached to this GameObject
Seeker seeker = GetComponent<Seeker>();

// Start the path and return the result to MyCompleteFunction (which is a function you have to define, the name can of course be changed)
seeker.StartPath(path, MyCompleteFunction);

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

Public Methods

FleePath ()

Default constructor.

Public

Public Static Methods

Construct (start, avoid, searchLength, callback=null)

Constructs a new FleePath.

Public Static

Inherited Public Members

aim

An aim can be used to guide the pathfinder to not take totally random paths.

Public
aimStrength

If an aim is set, the higher this value is, the more it will try to reach aim.

Public
BlockUntilCalculated ()

Blocks until this path has been calculated and returned.

Public
calculatePartial

Calculate partial path if the target node cannot be reached.

Public
callback

Callback to call when the path is complete.

Public
CanTraverse (node)

Returns if the node can be traversed.

Public
CanTraverse (from, to)

Returns if the path can traverse a link between from and to and if to can be traversed itself.

Public
Claim (o)

Claim this path (pooling).

Public
CompleteState

Current state of the path.

Public
Construct (start, end, callback=null)

Construct a path with a start and end point.

Public Static
Construct (start, length, callback=null)
Public Static
duration

How long it took to calculate this path in milliseconds.

Public
enabledTags

Which graph tags are traversable.

Public
endNode

End node of the path.

Public
endPoint

End point of the path.

Public
error

If the path failed, this is true.

Public
Error ()

Aborts the path because of an error.

Public
errorLog

Additional info on why a path failed.

Public
FailWithError (msg)

Causes the path to fail and sets errorLog to msg.

Public
FakePath (vectorPath, nodePath=null)

Creates a fake path.

Public Static
FloodingPath

True for paths that want to search all nodes and not jump over nodes as optimizations.

Public
FloodingPath
Public
GetConnectionSpecialCost (a, b, currentCost)

May be called by graph nodes to get a special cost for some connections.

Public
GetState ()

State of the path in the pathfinding pipeline.

Public
GetTagPenalty (tag)

Returns penalty for the given tag.

Public
GetTotalLength ()

Total Length of the path.

Public
GetTraversalCost (node)

Returns the cost of traversing the given node.

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
IsDone ()

True if this path is done calculating.

Public
nnConstraint

Constraint for how to search for nodes.

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 Node array.

Public
pathID

ID of this path.

Public
PipelineState

Returns the state of the path in the pathfinding pipeline.

Public
Release (o, silent=…)

Releases a path claim (pooling).

Public
searchedNodes

Number of nodes this path has searched.

Public
searchLength

G score to stop searching at.

Public
spread

All G scores between searchLength and searchLength+spread are valid end points, a random one of them is chosen as the final point.

Public
startIntPoint

Start point in integer coordinates.

Public
startNode

Start node of the path.

Public
startPoint

Start point of the path.

Public
tagPenalties

Penalties for each tag.

Public
traversalProvider

Provides additional traversal information to a path request.

Public
vectorPath

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

Public
WaitForPath ()

Waits until this path has been calculated and returned.

Public

Private/Protected Members

CalculateHScore (node)

Estimated cost from the specified node to the target.

Package
CalculateStep (targetTick)

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

Protected
Cleanup ()

Always called after the path has been calculated.

Protected
CompletePathIfStartIsValidTarget ()

Checks if the start node is the target and complete the path if that is the case.

Protected
completeState

Backing field for CompleteState.

Protected
currentR

The node currently being processed.

Protected
DebugString (logMode)

Returns a debug string for this path.

Protected
DebugStringPrefix (logMode, text)

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

Protected
DebugStringSuffix (logMode, text)

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

Protected
endNodeCosts

Saved original costs for the end node.

Protected
EndPointGridGraphSpecialCase (closestWalkableEndNode)

Applies a special case for grid nodes.

Protected
GetHTarget ()
Protected
hasBeenReset

True if the Reset function has been called.

Protected
hasEndPoint

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

Protected
hasEndPoint
Protected
hTarget

Target to use for H score calculations.

Protected
hTargetNode

Target to use for H score calculation.

Protected
Initialize ()

Initializes the path.

Protected
internalTagPenalties

The tag penalties that are actually used.

Protected
Log (msg)

Appends a message to the errorLog.

Protected
LogError (msg)

Logs an error.

Protected
manualTagPenalties

Tag penalties set by other scripts.

Protected
next

Internal linked list implementation.

Package
OnEnterPool ()

Called when the path enters the pool.

Protected
partialBestTarget

Current best target for the partial path.

Protected
pathHandler

Data for the thread calculating this path.

Protected
Prepare ()

Prepares the path.

Protected
PrepareBase (pathHandler)

Prepares low level path variables for calculation.

Protected
recycled

True if the path is currently recycled (i.e in the path pool).

Package
ReleaseSilent (o)

Releases the path silently (pooling).

Package
Reset ()

Reset all values to their default values.

Protected
ReturnPath ()

Calls callback to return the calculated path.

Protected
Setup (start, end, callbackDelegate)
Protected
Setup (start, length, callback)
Protected
Setup (start, avoid, searchLength, callback)
Protected
Trace (from)

Traces the calculated path from the end node to the start.

Protected
UpdateStartEnd (start, end)

Sets the start and end points.

Protected
ZeroTagPenalties

List of zeroes to use as default tag penalties.

Package Static Readonly