A* Pathfinding Project
4.1.9
The A* Pathfinding Project for Unity 3D
|
Adjusts start and end points of a path. More...
Adjusts start and end points of a path.
This modifier is included in the Seeker component and is always used if you are using a Seeker. When a path is calculated the resulting path will only be the positions of the nodes it passes through. However often you may not want to navigate to the center of a specific node but instead to a point on the surface of a node. This modifier will adjust the endpoints of the path.
Public Types | |
enum | Exactness { SnapToNode, Original, Interpolate, ClosestOnNode, NodeConnection } |
Sets where the start and end points of a path should be placed. More... | |
Public Member Functions | |
override void | Apply (Path _p) |
Main Post-Processing function. More... | |
Public Member Functions inherited from PathModifier | |
void | Awake (Seeker seeker) |
void | OnDestroy (Seeker seeker) |
virtual void | PreProcess (Path path) |
Public Attributes | |
bool | addPoints |
Add points to the path instead of replacing them. More... | |
System.Func< Vector3 > | adjustStartPoint |
Will be called when a path is processed. More... | |
Exactness | exactEndPoint = Exactness.ClosestOnNode |
How the end point of the path will be determined. More... | |
Exactness | exactStartPoint = Exactness.ClosestOnNode |
How the start point of the path will be determined. More... | |
LayerMask | mask = -1 |
bool | useGraphRaycasting |
Do a straight line check from the node's center to the point determined by the Exactness. More... | |
bool | useRaycasting |
Do a straight line check from the node's center to the point determined by the Exactness. More... | |
Public Attributes inherited from PathModifier | |
Seeker | seeker |
Protected Member Functions | |
Vector3 | GetClampedPoint (Vector3 from, Vector3 to, GraphNode hint) |
Properties | |
override int | Order [get] |
Properties inherited from PathModifier | |
abstract int | Order [get] |
Modifiers will be executed from lower order to higher order. More... | |
Properties inherited from IPathModifier | |
int | Order [get] |
Private Member Functions | |
Vector3 | Snap (ABPath path, Exactness mode, bool start, out bool forceAddPoint) |
Private Attributes | |
List< GraphNode > | connectionBuffer |
System.Action< GraphNode > | connectionBufferAddDelegate |
|
strong |
Sets where the start and end points of a path should be placed.
Enumerator | |
---|---|
SnapToNode | The point is snapped to the position of the first/last node in the path. |
Original | The point is set to the exact point which was passed when creating the path request. |
Interpolate | The point is set to the closest point on the line between either the two first points or the two last points. Usually you will want to use the NodeConnection mode instead since that is usually the behaviour that you really want. This mode exists mostly for compatibility reasons.
|
ClosestOnNode | The point is set to the closest point on the surface of the node. Note that some node types (point nodes) do not have a surface, so the "closest point" is simply the node's position which makes this identical to #Exactness.SnapToNode |
NodeConnection | The point is set to the closest point on one of the connections from the start/end node. |
|
virtual |
Main Post-Processing function.
Implements PathModifier.
|
protected |
bool addPoints |
Add points to the path instead of replacing them.
If for example exactEndPoint is set to ClosestOnNode then the path will be modified so that the path goes first to the center of the last node in the path and then goes to the closest point on the node to the end point in the path request.
If this is false however then the relevant points in the path will simply be replaced. In the above example the path would go directly to the closest point on the node without passing through the center of the node.
System.Func<Vector3> adjustStartPoint |
Will be called when a path is processed.
The value which is returned will be used as the start point of the path and potentially clamped depending on the value of the exactStartPoint field. Only used for the Original, Interpolate and NodeConnection modes.
|
private |
|
private |
Exactness exactEndPoint = Exactness.ClosestOnNode |
How the end point of the path will be determined.
Exactness exactStartPoint = Exactness.ClosestOnNode |
How the start point of the path will be determined.
LayerMask mask = -1 |
bool useGraphRaycasting |
Do a straight line check from the node's center to the point determined by the Exactness.
bool useRaycasting |
Do a straight line check from the node's center to the point determined by the Exactness.
There are very few cases where you will want to use this. It is mostly here for backwards compatibility reasons.
|
get |