A* Pathfinding Project  4.0.0
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
TileHandlerHelper Class Reference

Helper for navmesh cut objects. More...

Detailed Description

Helper for navmesh cut objects.

Adding an instance of this component into the scene makes sure that NavmeshCut components update the recast graph correctly when they move around.

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 Member Functions

void DiscardPending ()
 Discards all pending updates caused by moved or modified navmesh cuts.
 
void ForceUpdate ()
 Checks all NavmeshCut instances and updates graphs if needed.
 
void UseSpecifiedHandler (TileHandler handler)
 Use the specified handler, will create one at start if not called.
 

Public Attributes

float updateInterval
 How often to check if an update needs to be done (real seconds between checks).
 

Private Member Functions

void HandleOnDisableCallback (NavmeshCut obj)
 Called when a NavmeshCut is disabled.
 
void HandleOnDisableCallback (NavmeshAdd obj)
 Called when a NavmeshAdd is disabled.
 
void HandleOnEnableCallback (NavmeshCut obj)
 Called when a NavmeshCut is enabled.
 
void HandleOnEnableCallback (NavmeshAdd obj)
 Called when a NavmeshAdd is enabled.
 
void OnDisable ()
 
void OnEnable ()
 
void OnRecalculatedTiles (NavmeshTile[] tiles)
 Called when some recast graph tiles have been completely recalculated.
 
void Start ()
 
void Update ()
 Update is called once per frame.
 

Static Private Member Functions

static void ReAddItems< T > (List< T > items, System.Action< T > action)
 

Private Attributes

List< NavmeshAddaddsPendingRegistration = new List<NavmeshAdd>()
 NavmeshAdds that were enabled while this component did not have a TileHandler set.
 
List< NavmeshCutcutsPendingRegistration = new List<NavmeshCut>()
 Cuts that were enabled while this component did not have a TileHandler set.
 
readonly List< Bounds > forcedReloadBounds = new List<Bounds>()
 
readonly List< IntRectforcedReloadRects = new List<IntRect>()
 
TileHandler handler
 
float lastUpdateTime = -999
 

Additional Inherited Members

- Protected Member Functions inherited from VersionedMonoBehaviour
virtual void Awake ()
 
virtual int OnUpgradeSerializedData (int version)
 Handle serialization backwards compatibility.
 

Member Function Documentation

void DiscardPending ( )

Discards all pending updates caused by moved or modified navmesh cuts.

void ForceUpdate ( )

Checks all NavmeshCut instances and updates graphs if needed.

Note
This schedules updates for all necessary tiles to happen as soon as possible. The pathfinding threads will continue to calculate the paths that they were calculating when this function was called and then they will be paused and the graph updates will be carried out (this may be several frames into the future and the graph updates themselves may take several frames to complete). If you want to force all navmesh cutting to be completed in a single frame call this method and immediately after call AstarPath.FlushWorkItems.
void HandleOnDisableCallback ( NavmeshCut  obj)
private

Called when a NavmeshCut is disabled.

void HandleOnDisableCallback ( NavmeshAdd  obj)
private

Called when a NavmeshAdd is disabled.

void HandleOnEnableCallback ( NavmeshCut  obj)
private

Called when a NavmeshCut is enabled.

void HandleOnEnableCallback ( NavmeshAdd  obj)
private

Called when a NavmeshAdd is enabled.

void OnDisable ( )
private
void OnEnable ( )
private
void OnRecalculatedTiles ( NavmeshTile[]  tiles)
private

Called when some recast graph tiles have been completely recalculated.

static void ReAddItems< T > ( List< T >  items,
System.Action< T >  action 
)
staticprivate
Type Constraints
T :MonoBehaviour 
void Start ( )
private
void Update ( )
private

Update is called once per frame.

void UseSpecifiedHandler ( TileHandler  handler)

Use the specified handler, will create one at start if not called.

Member Data Documentation

List<NavmeshAdd> addsPendingRegistration = new List<NavmeshAdd>()
private

NavmeshAdds that were enabled while this component did not have a TileHandler set.

List<NavmeshCut> cutsPendingRegistration = new List<NavmeshCut>()
private

Cuts that were enabled while this component did not have a TileHandler set.

readonly List<Bounds> forcedReloadBounds = new List<Bounds>()
private
readonly List<IntRect> forcedReloadRects = new List<IntRect>()
private
TileHandler handler
private
float lastUpdateTime = -999
private
float updateInterval

How often to check if an update needs to be done (real seconds between checks).

For very large worlds with lots of NavmeshCut objects, it might be a performance penalty to do this check every frame. If you think this is a performance penalty, increase this number to check less often.

For almost all games, this can be kept at 0.

If negative, no updates will be done. They must be manually triggered using ForceUpdate


The documentation for this class was generated from the following file: