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 |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
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) |
![]() | |
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. | |
![]() | |
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 | |
![]() | |
void | Teleport (Vector3 newPosition) |
Instantly moves the agent to the target position. | |
virtual void | UpdatePath () |
Force recalculation of the current path. | |
![]() | |
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 readonly Color | GizmoColorPath = new Color(8.0f/255, 78.0f/255, 194.0f/255) |
![]() | |
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