|
A* Pathfinding Project
4.0.3
The A* Pathfinding Project for Unity 3D
|
Advanced AI for navmesh based graphs. More...
Advanced AI for navmesh based graphs.
Public Attributes | |
| bool | preciseSlowdown = true |
| Use a 3rd degree equation for calculating slowdown acceleration instead of a 2nd degree. | |
| bool | raycastingForGroundPlacement = false |
Public Attributes inherited from RichAI | |
| float | acceleration = 5 |
| Max acceleration of the agent. | |
| Animation | anim |
| float | endReachedDistance = 0.01f |
| Max distance to the endpoint to consider it reached. | |
| bool | funnelSimplification = false |
| Use funnel simplification. | |
| float | maxSpeed = 1 |
| Max speed of the agent. | |
| float | repathRate = 0.5f |
| Delay (seconds) between path searches. | |
| bool | repeatedlySearchPaths = false |
| Search for new paths repeatedly. | |
| float | rotationSpeed = 360 |
| Max rotation speed of the agent. | |
| float | slowdownTime = 0.5f |
| How long before reaching the end of the path to start to slow down. | |
| bool | slowWhenNotFacingTarget = true |
| Slow down when not facing the target direction. | |
| Transform | target |
| Target position to move to. | |
| float | wallDist = 1 |
| Walls within this range will be used for avoidance. | |
| float | wallForce = 3 |
| Force to avoid walls with. | |
Public Attributes inherited from AIBase | |
| float | centerOffset = 1 |
| Offset along the Y coordinate for the ground raycast start position. | |
| Vector3 | gravity = new Vector3(float.NaN, float.NaN, float.NaN) |
| Gravity to use. | |
| LayerMask | groundMask = -1 |
| Layer mask to use for ground placement. | |
Protected Member Functions | |
| override void | Awake () |
| Initializes reference variables. | |
| override IEnumerator | TraverseSpecial (RichSpecial rs) |
| override void | Update () |
| Update is called once per frame. | |
Protected Member Functions inherited from RichAI | |
| void | CancelCurrentPathRequest () |
| override Vector3 | ClampToNavmesh (Vector3 position) |
| Constrains the character's position to lie on the navmesh. | |
| override void | MovementUpdate (float deltaTime) |
| Called during either Update or FixedUpdate depending on if rigidbodies are used for movement or not. | |
| void | NextPart () |
| Declare that the AI has completely traversed the current part. | |
| virtual void | OnDisable () |
| Called when the component is disabled. | |
| override void | OnDrawGizmos () |
| virtual void | OnEnable () |
| Called when the component is enabled. | |
| virtual void | OnTargetReached () |
| Called when the end of the path is reached. | |
| virtual void | Start () |
| Starts searching for paths. | |
| virtual Vector3 | UpdateTarget (RichFunnel fn) |
Protected Member Functions inherited from AIBase | |
| void | ApplyGravity (float deltaTime) |
| Vector2 | CalculateDeltaToMoveThisFrame (Vector2 position, float distanceToEndOfPath, float deltaTime) |
| virtual void | FixedUpdate () |
| Called every physics update. | |
| void | Move (Vector3 position3D, Vector3 deltaPosition) |
| Vector3 | RaycastPosition (Vector3 position, float lastElevation) |
| Find the world position of the ground below the character. | |
| virtual void | RotateTowards (Vector2 direction, float maxDegrees) |
| Rotates in the specified direction. | |
Protected Member Functions inherited from VersionedMonoBehaviour | |
| virtual int | OnUpgradeSerializedData (int version) |
| Handle serialization backwards compatibility. | |
Private Member Functions | |
| new Vector3 | RaycastPosition (Vector3 position, float lasty) |
| bool | RotateTowards (Vector3 trotdir) |
| Rotates along the Y-axis the transform towards trotdir. | |
Private Attributes | |
| Vector3 | currentTargetDirection |
| Vector3 | lastTargetPoint |
| Vector3 | velocity |
| Current velocity of the agent. | |
Static Private Attributes | |
| static float | deltaTime |
| Smooth delta time to avoid getting overly affected by e.g GC. | |
Additional Inherited Members | |
Public Member Functions inherited from RichAI | |
| void | Teleport (Vector3 newPosition) |
| Instantly moves the agent to the target position. | |
| virtual void | UpdatePath () |
| Force recalculation of the current path. | |
Protected Attributes inherited from RichAI | |
| bool | canSearchPath |
| bool | delayUpdatePath |
| float | distanceToWaypoint = float.PositiveInfinity |
| bool | lastCorner |
| float | lastRepath = float.NegativeInfinity |
| readonly List< Vector3 > | nextCorners = new List<Vector3>() |
| Vector3 | prevPosition |
| Position of the agent at the end of the previous frame. | |
| Vector3 | realVelocity |
| Current velocity of the agent. | |
| readonly RichPath | richPath = new RichPath() |
| Holds the current path that this agent is following. | |
| bool | traversingSpecialPath |
| bool | waitingForPathCalc |
| readonly List< Vector3 > | wallBuffer = new List<Vector3>() |
Static Protected Attributes inherited from RichAI | |
| static readonly Color | GizmoColorPath = new Color(8.0f/255, 78.0f/255, 194.0f/255) |
Properties inherited from RichAI | |
| bool | ApproachingPartEndpoint [get] |
| True if approaching the last waypoint in the current part of the path. | |
| bool | ApproachingPathEndpoint [get] |
| True if approaching the last waypoint of all parts in the current path. | |
| float | DistanceToNextWaypoint [get] |
| Distance to the next waypoint. | |
| Vector3 | NextWaypoint [get] |
| Waypoint that the agent is moving towards. | |
| bool | PathPending [get] |
| True if a path to the target is currently being calculated. | |
| Vector3 | TargetPoint [get] |
| Current waypoint that the agent is moving towards. | |
| bool | TargetReached [get] |
| True if the agent is within endReachedDistance units from the end of the current path. | |
| bool | TraversingSpecial [get] |
| Vector3 | Velocity [get] |
| Current velocity of the agent. | |
|
protectedvirtual |
Initializes reference variables.
If you override this function you should in most cases call base.Awake () at the start of it.
Reimplemented from AIBase.
|
private |
|
private |
Rotates along the Y-axis the transform towards trotdir.
|
protectedvirtual |
Reimplemented from RichAI.
|
protectedvirtual |
Update is called once per frame.
Reimplemented from AIBase.
|
private |
|
staticprivate |
Smooth delta time to avoid getting overly affected by e.g GC.
|
private |
| bool preciseSlowdown = true |
Use a 3rd degree equation for calculating slowdown acceleration instead of a 2nd degree.
A 3rd degree equation can also make sure that the velocity when reaching the target is roughly zero and therefore it will have a more direct stop. In contrast solving a 2nd degree equation which will just make sure the target is reached but will usually have a larger velocity when reaching the target and therefore look more "bouncy".
| bool raycastingForGroundPlacement = false |
|
private |
Current velocity of the agent.
Includes eventual velocity due to gravity