A* Pathfinding Project  4.1.8
The A* Pathfinding Project for Unity 3D
Deprecated List
Member AIBase.target
In 4.1 this will automatically add a AIDestinationSetter component and set the target on that component. Try instead to use the destination property which does not require a transform to be created as the target or use the AIDestinationSetter component directly.
Member AILerp.target
In 4.0 this will automatically add a AIDestinationSetter component and set the target on that component. Try instead to use the destination property which does not require a transform to be created as the target or use the AIDestinationSetter component directly.
Member AILerp.TrySearchPath ()
Member AIPath.CalculateVelocity (Vector3 position)
This method no longer calculates the velocity. Use the desiredVelocity property instead.
Member AIPath.speed
Use maxSpeed instead
Member AIPath.targetDirection
Only exists for compatibility reasons. Use desiredVelocity or steeringTarget instead instead.
Member AIPath.TargetReached
When unifying the interfaces for different movement scripts, this property has been renamed to reachedEndOfPath
Member AIPath.turningSpeed
This field has been renamed to rotationSpeed and is now in degrees per second instead of a damping factor.
Member AstarData.AddGraph (string type)
Member AstarData.CreateGraph (string type)
Member AstarData.data_cachedStartup
Deprecated since 3.6, AstarData.file_cachedStartup is now used instead
Member AstarData.GetGraphType (string type)
Member AstarData.GetRaycastableGraphs ()
Deprecated because it is not used by the package internally and the use cases are few. Iterate through the graphs array instead.
Member AstarMath.Abs (float a)
Use Mathf.Abs instead
Member AstarMath.Abs (int a)
Use Mathf.Abs instead
Member AstarMath.Clamp (float a, float b, float c)
Use Mathf.Clamp instead
Member AstarMath.Clamp (int a, int b, int c)
Use Mathf.Clamp instead
Member AstarMath.Clamp01 (float a)
Use Mathf.Clamp01 instead
Member AstarMath.Clamp01 (int a)
Use Mathf.Clamp01 instead
Member AstarMath.ComputeVertexHash (int x, int y, int z)
Use Int3.GetHashCode instead
Member AstarMath.DistancePointSegment2 (int x, int z, int px, int pz, int qx, int qz)
Obsolete
Member AstarMath.DistancePointSegment2 (Vector3 a, Vector3 b, Vector3 p)
Obsolete
Member AstarMath.FormatBytes (int bytes)
Obsolete
Member AstarMath.Hermite (float start, float end, float value)
Obsolete
Member AstarMath.Lerp (float a, float b, float t)
Use Mathf.Lerp instead
Member AstarMath.MagnitudeXZ (Vector3 a, Vector3 b)
Obsolete
Member AstarMath.MapToRange (float targetMin, float targetMax, float value)
Obsolete
Member AstarMath.Max (float a, float b)
Use Mathf.Max instead
Member AstarMath.Max (int a, int b)
Use Mathf.Max instead
Member AstarMath.Max (uint a, uint b)
Use Mathf.Max instead
Member AstarMath.Max (ushort a, ushort b)
Use Mathf.Max instead
Member AstarMath.Min (float a, float b)
Use Mathf.Min instead
Member AstarMath.Min (int a, int b)
Use Mathf.Min instead
Member AstarMath.Min (uint a, uint b)
Use Mathf.Min instead
Member AstarMath.Repeat (int i, int n)
Obsolete
Member AstarMath.RoundToInt (float v)
Use Mathf.RoundToInt instead
Member AstarMath.RoundToInt (double v)
Use Mathf.RoundToInt instead
Member AstarMath.Sign (int a)
Use Mathf.Sign instead
Member AstarMath.Sign (float a)
Use Mathf.Sign instead
Member AstarPath.astarData
The 'astarData' field has been renamed to 'data'
Member AstarPath.BlockUntilPathQueueBlocked ()
Use PausePathfinding instead. Make sure to call Release on the returned lock.
Member AstarPath.EnsureValidFloodFill ()
This method has been moved. Use the method on the context object that can be sent with work item delegates instead
AstarPath Member AstarPath.FlushThreadSafeCallbacks () Use FlushWorkItems instead
Member AstarPath.FlushWorkItems (bool unblockOnComplete, bool block)
Use FlushWorkItems() instead.
Member AstarPath.graphTypes
Member AstarPath.IsAnyGraphUpdatesQueued
Use IsAnyGraphUpdateQueued instead
Member AstarPath.limitGraphUpdates
This field has been renamed to batchGraphUpdates.
Member AstarPath.maxGraphUpdateFreq
This field has been renamed to graphUpdateBatchingInterval.
Member AstarPath.minAreaSize
This is handled automatically now
Member AstarPath.OnGraphsWillBeUpdated
Member AstarPath.OnGraphsWillBeUpdated2
Member AstarPath.QueueWorkItemFloodFill ()
This method has been moved. Use the method on the context object that can be sent with work item delegates instead
AstarPath Member AstarPath.RegisterSafeUpdate (System.Action callback, bool threadSafe)
Member AstarPath.RegisterSafeUpdate (System.Action callback)
Use AddWorkItem(System.Action) instead. Note the slight change in behavior (mentioned above).
Member AstarPath.ScanLoop (OnScanStatus statusCallback)
Use Scan or ScanAsync instead
Member AstarPath.WaitForPath (Path path)
This method has been renamed to BlockUntilCalculated.
Member AstarSerializer.SerializeNodes ()
Not used anymore
Class ExtraMesh
Use RasterizationMesh instead
Member GraphUpdateScene.LockToY ()
The Y coordinate is no longer important. Use the position of the object instead.
Member GraphUpdateScene.ToggleUseWorldSpace ()
World space can no longer be used as it does not work well with rotated graphs. Use transform.InverseTransformPoint to transform points to local space.
Member GridGraph.CalculateConnections (GridNode node)
Use the instance function instead
Member GridGraph.CalculateConnections (GridNode[] nodes, int x, int z, GridNode node)
CalculateConnections no longer takes a node array, it just uses the one on the graph
Member GridGraph.CalculateConnections (int x, int z, GridNode node)
Use CalculateConnections(x,z) or CalculateConnections(node) instead
Member GridGraph.GenerateMatrix ()
This method has been renamed to UpdateTransform
Member GridGraph.GetNodesInArea (Bounds bounds)
This method has been renamed to GetNodesInRegion
Member GridGraph.GetNodesInArea (GraphUpdateShape shape)
This method has been renamed to GetNodesInRegion
Member GridGraph.GetNodesInArea (Bounds bounds, GraphUpdateShape shape)
This method has been renamed to GetNodesInRegion
Member GridGraph.SetNodeConnection (int index, int x, int z, int dir, bool value)
Member GridGraph.UpdateNodePositionCollision (GridNode node, int x, int z, bool resetPenalty=true)
Use RecalculateCell instead which works both for grid graphs and layered grid graphs.
Member GridGraph.UpdateSizeFromWidthDepth ()
Use SetDimensions instead
Member GridNode.GetConnectionInternal (int dir)
Use HasConnectionInDirection
Member Int2.Rotate (Int2 v, int r)
Deprecated becuase it is not used by any part of the A* Pathfinding Project
Member Int3.worldMagnitude
This property is deprecated. Use magnitude or cast to a Vector3
Member LayerGridGraph.CalculateConnections (LevelGridNode[] nodes, LevelGridNode node, int x, int z, int layerIndex)
CalculateConnections no longer takes a node array, it just uses the one on the graph
Member LayerGridGraph.CalculateConnections (int x, int z, int layerIndex, LevelGridNode node)
Use CalculateConnections(x,z,layerIndex) or CalculateConnections(node) instead
Member LayerGridGraph.CheckConnection (LevelGridNode node, int dir)
Use node.GetConnection instead
Class LegacyAIPath
Use the AIPath class instead. This class only exists for compatibility reasons.
Class LegacyRichAI
Use the RichAI class instead. This class only exists for compatibility reasons.
Class LegacyRVOController
Use the RVOController class instead. This class only exists for compatibility reasons.
Member NavGraph.DeserializeSettingsCompatibility (GraphSerializationContext ctx)
This is deprecated now, but the deserialization code is kept to avoid loosing data when upgrading from older versions.
Member NavGraph.inverseMatrix
Use the transform field (only available on some graph types) instead
Member NavGraph.matrix
Use the transform field (only available on some graph types) instead
Member NavGraph.RelocateNodes (Matrix4x4 oldMatrix, Matrix4x4 newMatrix)
Use RelocateNodes(Matrix4x4) instead. To keep the same behavior you can call RelocateNodes(newMatrix * oldMatrix.inverse).
Member NavGraph.ScanGraph ()
Use AstarPath.Scan() instead
Member NavGraph.SetMatrix (Matrix4x4 m)
Use the transform field (only available on some graph types) instead
Member NNInfo.clampedPosition
This field has been renamed to position
Member Path.GetState ()
Use the Pathfinding.Path.PipelineState property instead
Member Path.Log (string msg)
Use FailWithError instead
Member Path.LogError (string msg)
Use FailWithError instead
Member Path.recycled
Has been renamed to 'pooled' to use more widely underestood terminology
Member Path.ReleaseSilent (System.Object o)
Use Release(o, true) instead
Member Pathfinding.OnScanStatus (Progress progress)
Class PathPool< T >
Generic version is now obsolete to trade an extremely tiny performance decrease for a large decrease in boilerplate for Path classes
Member Polygon.ClosestPointOnTriangle (Vector3[] triangle, Vector3 point)
Scheduled for removal since it is not used by any part of the A* Pathfinding Project
Member Polygon.ConvexHull (Vector3[] points)
Use ConvexHullXZ instead
Member Polygon.DistanceSegmentSegment3D (Vector3 s1, Vector3 e1, Vector3 s2, Vector3 e2)
Use VectorMath.SqrDistanceSegmentSegment instead
Member Polygon.IntersectionFactor (Int3 start1, Int3 end1, Int3 start2, Int3 end2, out float factor1, out float factor2)
Use VectorMath.LineIntersectionFactorXZ instead
Member Polygon.IntersectionFactor (Vector3 start1, Vector3 end1, Vector3 start2, Vector3 end2, out float factor1, out float factor2)
Use VectorMath.LineIntersectionFactorXZ instead
Member Polygon.IntersectionFactor (Vector3 start1, Vector3 end1, Vector3 start2, Vector3 end2)
Use VectorMath.LineIntersectionFactorXZ instead
Member Polygon.IntersectionFactorRay (Int3 start1, Int3 end1, Int3 start2, Int3 end2)
Use VectorMath.LineRayIntersectionFactorXZ instead
Member Polygon.IntersectionFactorRaySegment (Int3 start1, Int3 end1, Int3 start2, Int3 end2)
Use VectorMath.RaySegmentIntersectXZ instead
Member Polygon.IntersectionPoint (Vector2 start1, Vector2 end1, Vector2 start2, Vector2 end2)
Use VectorMath.LineIntersectionPoint instead
Member Polygon.IntersectionPoint (Vector3 start1, Vector3 end1, Vector3 start2, Vector3 end2, out bool intersects)
Use VectorMath.LineIntersectionPointXZ instead
Member Polygon.IntersectionPoint (Vector3 start1, Vector3 end1, Vector3 start2, Vector3 end2)
Use VectorMath.LineIntersectionPointXZ instead
Member Polygon.IntersectionPoint (Vector2 start1, Vector2 end1, Vector2 start2, Vector2 end2, out bool intersects)
Use VectorMath.LineIntersectionPoint instead
Member Polygon.IntersectionPointOptimized (Vector3 start1, Vector3 dir1, Vector3 start2, Vector3 dir2, out bool intersects)
Use VectorMath.LineDirIntersectionPointXZ instead
Member Polygon.IntersectionPointOptimized (Vector3 start1, Vector3 dir1, Vector3 start2, Vector3 dir2)
Use VectorMath.LineDirIntersectionPointXZ instead
Member Polygon.Intersects (Vector3 start1, Vector3 end1, Vector3 start2, Vector3 end2)
Use VectorMath.SegmentsIntersectXZ instead
Member Polygon.Intersects (Int2 start1, Int2 end1, Int2 start2, Int2 end2)
Use VectorMath.SegmentsIntersect instead
Member Polygon.Intersects (Int3 start1, Int3 end1, Int3 start2, Int3 end2)
Use VectorMath.SegmentsIntersectXZ instead
Member Polygon.IsClockwise (Int3 a, Int3 b, Int3 c)
Use VectorMath.IsClockwiseXZ instead
Member Polygon.IsClockwise (Vector3 a, Vector3 b, Vector3 c)
Use VectorMath.IsClockwiseXZ instead
Member Polygon.IsClockwiseMargin (Vector3 a, Vector3 b, Vector3 c)
Use VectorMath.IsClockwiseMarginXZ instead
Member Polygon.IsClockwiseMargin (Int3 a, Int3 b, Int3 c)
Use VectorMath.IsClockwiseOrColinearXZ instead
Member Polygon.IsClockwiseMargin (Int2 a, Int2 b, Int2 c)
Use VectorMath.IsClockwiseOrColinear instead
Member Polygon.IsColinear (Vector3 a, Vector3 b, Vector3 c)
Use VectorMath.IsColinearXZ instead
Member Polygon.IsColinear (Int3 a, Int3 b, Int3 c)
Use VectorMath.IsColinearXZ instead
Member Polygon.IsColinearAlmost (Int3 a, Int3 b, Int3 c)
Use VectorMath.IsColinearAlmostXZ instead
Member Polygon.Left (Vector2 a, Vector2 b, Vector2 p)
Use VectorMath.RightOrColinear instead. Note that it now uses a left handed coordinate system (same as Unity)
Member Polygon.Left (Vector3 a, Vector3 b, Vector3 p)
Use VectorMath.RightOrColinearXZ instead. Note that it now uses a left handed coordinate system (same as Unity)
Member Polygon.Left (Int3 a, Int3 b, Int3 p)
Use VectorMath.RightOrColinearXZ instead. Note that it now uses a left handed coordinate system (same as Unity)
Member Polygon.Left (Int2 a, Int2 b, Int2 p)
Use VectorMath.RightOrColinear instead. Note that it now uses a left handed coordinate system (same as Unity)
Member Polygon.LeftNotColinear (Vector3 a, Vector3 b, Vector3 p)
Use VectorMath.RightXZ instead. Note that it now uses a left handed coordinate system (same as Unity)
Member Polygon.LeftNotColinear (Int3 a, Int3 b, Int3 p)
Use VectorMath.RightXZ instead. Note that it now uses a left handed coordinate system (same as Unity)
Member Polygon.LineIntersectsBounds (Bounds bounds, Vector3 a, Vector3 b)
Use VectorMath.SegmentIntersectsBounds instead
Member Polygon.SegmentIntersectionPoint (Vector3 start1, Vector3 end1, Vector3 start2, Vector3 end2, out bool intersects)
Use VectorMath.SegmentIntersectionPointXZ instead
Member RecastGraph.ClosestPointOnNode (TriangleMeshNode node, Vector3 pos)
Use Pathfinding.TriangleMeshNode.ClosestPointOnNode instead
Member RecastGraph.ContainsPoint (TriangleMeshNode node, Vector3 pos)
Use Pathfinding.TriangleMeshNode.ContainsPoint instead
Member RecastGraph.forcedBounds
Obsolete since this is not accurate when the graph is rotated (rotation was not supported when this property was created)
Member RichAI.anim
Use the onTraverseOffMeshLink event or the ... component instead. Setting this value will add a ... component
Member RichAI.ApproachingPartEndpoint
Use approachingPartEndpoint (lowercase 'a') instead
Member RichAI.ApproachingPathEndpoint
Use approachingPathEndpoint (lowercase 'a') instead
Member RichAI.DistanceToNextWaypoint
Use Vector3.Distance(transform.position, ai.steeringTarget) instead.
Member RichAI.NextWaypoint
Use steeringTarget instead.
Member RichAI.PathPending
Use pathPending instead (lowercase 'p').
Member RichAI.TargetPoint
This property has been renamed to steeringTarget
Member RichAI.TargetReached
When unifying the interfaces for different movement scripts, this property has been renamed to reachedEndOfPath
Member RichAI.TraversingSpecial
This property has been renamed to 'traversingOffMeshLink'
Member RichAI.UpdatePath ()
Use SearchPath instead
Member RichAI.Velocity
Use velocity instead (lowercase 'v').
Member RVOController.enableRotation
Member RVOController.ForceSetVelocity (Vector3 velocity)
Set the velocity property instead
Member RVOController.mask
Member RVOController.maxSpeed
Member RVOController.rotationSpeed
Member RVOController.Teleport (Vector3 pos)
Use transform.position instead, the RVOController can now handle that without any issues.
Member RVOController.wallAvoidFalloff
This feature is currently disabled as it didn't work that well and was tricky to support after some changes to the RVO system. It may be enabled again in a future version.
Member RVOController.wallAvoidForce
This feature is currently disabled as it didn't work that well and was tricky to support after some changes to the RVO system. It may be enabled again in a future version.
Member Seeker.GetNewPath (Vector3 start, Vector3 end)
Use ABPath.Construct(start, end, null) instead.
Member Seeker.StartMultiTargetPath (MultiTargetPath p, OnPathDelegate callback=null, int graphMask=-1)
You can use StartPath instead of this method now. It will behave identically.
Member Simulator.AddAgent (Vector3 position)
Use AddAgent(Vector2,float) instead
Member StartEndModifier.Interpolate
Use NodeConnection instead.
Member TileHandler.GetTileType (int index)
Member TileHandler.GetTileTypeCount ()