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

Stores the navigation graphs for the A* Pathfinding System. More...

Detailed Description

Stores the navigation graphs for the A* Pathfinding System.

An instance of this class is assigned to AstarPath.astarData, from it you can access all graphs loaded through the graphs variable.
This class also handles a lot of the high level serialization.

Public Member Functions

NavGraph AddGraph (string type)
 Adds a graph of type type to the graphs array.
 
NavGraph AddGraph (System.Type type)
 Adds a graph of type type to the graphs array.
 
void AddGraph (NavGraph graph)
 Adds the specified graph to the graphs array.
 
void Awake ()
 Loads the graphs from memory, will load cached graphs if any exists.
 
NavGraph CreateGraph (string type)
 Creates a new instance of a graph of type type.
 
NavGraph CreateGraph (System.Type type)
 Creates a new graph instance of type type.
 
void DeserializeGraphs ()
 Deserializes graphs from data.
 
void DeserializeGraphs (byte[] bytes)
 Deserializes graphs from the specified byte array.
 
void DeserializeGraphsAdditive (byte[] bytes)
 Deserializes graphs from the specified byte array additively.
 
void DeserializeGraphsPart (Pathfinding.Serialization.AstarSerializer sr)
 Deserializes common info.
 
void DeserializeGraphsPartAdditive (Pathfinding.Serialization.AstarSerializer sr)
 Deserializes common info additively Common info is what is shared between the editor serialization and the runtime serializer.
 
NavGraph FindGraphOfType (System.Type type)
 Returns the first graph of type type found in the graphs array.
 
IEnumerable FindGraphsOfType (System.Type type)
 Loop through this function to get all graphs of type 'type'.
 
void FindGraphTypes ()
 Find all graph types supported in this build.
 
byte[] GetData ()
 
int GetGraphIndex (NavGraph graph)
 Gets the index of the NavGraph in the graphs array.
 
System.Type GetGraphType (string type)
 
GraphNode GetNode (int graphIndex, int nodeIndex)
 Returns the node at graphs[graphIndex].nodes[nodeIndex].
 
GraphNode GetNode (int graphIndex, int nodeIndex, NavGraph[] graphs)
 Returns the node at graphs[graphIndex].nodes[nodeIndex].
 
IEnumerable GetRaycastableGraphs ()
 All graphs which implements the UpdateableGraph interface.
 
IEnumerable GetUpdateableGraphs ()
 All graphs which implements the UpdateableGraph interface.
 
NavGraph GuidToGraph (Guid guid)
 Tries to find a graph with the specified GUID in the graphs array.
 
int GuidToIndex (Guid guid)
 Tries to find a graph with the specified GUID in the graphs array.
 
void LoadFromCache ()
 Load from data from file_cachedStartup.
 
void OnDestroy ()
 
bool RemoveGraph (NavGraph graph)
 Removes the specified graph from the graphs array and Destroys it in a safe manner.
 
byte[] SerializeGraphs ()
 Serializes all graphs settings to a byte array.
 
byte[] SerializeGraphs (Pathfinding.Serialization.SerializeSettings settings)
 Serializes all graphs settings and optionally node data to a byte array.
 
byte[] SerializeGraphs (Pathfinding.Serialization.SerializeSettings settings, out uint checksum)
 Main serializer function.
 
void SerializeGraphsPart (Pathfinding.Serialization.AstarSerializer sr)
 Serializes common info to the serializer.
 
void SetData (byte[] data, uint checksum)
 
void UpdateShortcuts ()
 Updates shortcuts to the first graph of different types.
 

Static Public Member Functions

static NavGraph GetGraph (GraphNode node)
 Returns the graph which contains the specified node.
 

Public Attributes

bool cacheStartup = false
 Should graph-data be cached.
 
byte[] data_backup
 Backup data if deserialization failed.
 
byte[] data_cachedStartup
 Serialized data for cached startup.
 
uint dataChecksum
 
TextAsset file_cachedStartup
 Serialized data for cached startup.
 
NavGraph[] graphs = new NavGraph[0]
 All graphs this instance holds.
 
System.Type[] graphTypes = null
 All supported graph types.
 
GridGraph gridGraph
 Shortcut to the first GridGraph.
 
bool hasBeenReverted = false
 Has the data been reverted by an undo operation.
 
NavMeshGraph navmesh
 Shortcut to the first NavMeshGraph.
 
PointGraph pointGraph
 Shortcut to the first PointGraph.
 
RecastGraph recastGraph
 Shortcut to the first RecastGraph.
 
byte[] revertData
 
UserConnection[] userConnections = new UserConnection[0]
 Links placed by the user in the scene view.
 

Properties

AstarPath active [get]
 Shortcut to AstarPath.active.
 

Private Member Functions

void ClearGraphs ()
 Destroys all graphs and sets graphs to null.
 

Private Attributes

byte[] data
 Serialized data for all graphs and settings.
 

Member Function Documentation

NavGraph AddGraph ( string  type)

Adds a graph of type type to the graphs array.

NavGraph AddGraph ( System.Type  type)

Adds a graph of type type to the graphs array.

void AddGraph ( NavGraph  graph)

Adds the specified graph to the graphs array.

void Awake ( )

Loads the graphs from memory, will load cached graphs if any exists.

void ClearGraphs ( )
private

Destroys all graphs and sets graphs to null.

NavGraph CreateGraph ( string  type)

Creates a new instance of a graph of type type.

If no matching graph type was found, an error is logged and null is returned

Returns
The created graph
See Also
CreateGraph(System.Type)
NavGraph CreateGraph ( System.Type  type)

Creates a new graph instance of type type.

See Also
CreateGraph(string)
void DeserializeGraphs ( )

Deserializes graphs from data.

void DeserializeGraphs ( byte[]  bytes)

Deserializes graphs from the specified byte array.

If an error occured, it will try to deserialize using the old deserializer. A warning will be logged if all deserializers failed.

void DeserializeGraphsAdditive ( byte[]  bytes)

Deserializes graphs from the specified byte array additively.

If an error ocurred, it will try to deserialize using the old deserializer. A warning will be logged if all deserializers failed. This function will add loaded graphs to the current ones

void DeserializeGraphsPart ( Pathfinding.Serialization.AstarSerializer  sr)

Deserializes common info.

Common info is what is shared between the editor serialization and the runtime serializer. This is mostly everything except the graph inspectors which serialize some extra data in the editor

void DeserializeGraphsPartAdditive ( Pathfinding.Serialization.AstarSerializer  sr)

Deserializes common info additively Common info is what is shared between the editor serialization and the runtime serializer.

This is mostly everything except the graph inspectors which serialize some extra data in the editor

NavGraph FindGraphOfType ( System.Type  type)

Returns the first graph of type type found in the graphs array.

Returns null if none was found

IEnumerable FindGraphsOfType ( System.Type  type)

Loop through this function to get all graphs of type 'type'.

foreach (GridGraph graph in AstarPath.astarData.FindGraphsOfType (typeof(GridGraph))) {
//Do something with the graph
}
See Also
AstarPath.RegisterSafeNodeUpdate
void FindGraphTypes ( )

Find all graph types supported in this build.

Using reflection, the assembly is searched for types which inherit from NavGraph.

byte [] GetData ( )
static NavGraph GetGraph ( GraphNode  node)
static

Returns the graph which contains the specified node.

The graph must be in the graphs array.

Returns
Returns the graph which contains the node. Null if the graph wasn't found
int GetGraphIndex ( NavGraph  graph)

Gets the index of the NavGraph in the graphs array.

System.Type GetGraphType ( string  type)
Returns
A System.Type which matches the specified type string. If no mathing graph type was found, null is returned
GraphNode GetNode ( int  graphIndex,
int  nodeIndex 
)

Returns the node at graphs[graphIndex].nodes[nodeIndex].

All kinds of error checking is done to make sure no exceptions are thrown.

GraphNode GetNode ( int  graphIndex,
int  nodeIndex,
NavGraph[]  graphs 
)

Returns the node at graphs[graphIndex].nodes[nodeIndex].

The graphIndex refers to the specified graphs array.
All kinds of error checking is done to make sure no exceptions are thrown

IEnumerable GetRaycastableGraphs ( )

All graphs which implements the UpdateableGraph interface.

foreach (IRaycastableGraph graph in AstarPath.astarData.GetRaycastableGraphs ()) {
//Do something with the graph
}
See Also
Pathfinding.IRaycastableGraph
IEnumerable GetUpdateableGraphs ( )

All graphs which implements the UpdateableGraph interface.

foreach (IUpdatableGraph graph in AstarPath.astarData.GetUpdateableGraphs ()) {
//Do something with the graph
}
See Also
AstarPath.RegisterSafeNodeUpdate
Pathfinding.IUpdatableGraph
NavGraph GuidToGraph ( Guid  guid)

Tries to find a graph with the specified GUID in the graphs array.

Returns null if none is found

See Also
GuidToIndex
int GuidToIndex ( Guid  guid)

Tries to find a graph with the specified GUID in the graphs array.

If a graph is found it returns its index, otherwise it returns -1

See Also
GuidToGraph
void LoadFromCache ( )

Load from data from file_cachedStartup.

void OnDestroy ( )
bool RemoveGraph ( NavGraph  graph)

Removes the specified graph from the graphs array and Destroys it in a safe manner.

To avoid changing graph indices for the other graphs, the graph is simply nulled in the array instead of actually removing it from the array. The empty position will be reused if a new graph is added.

Returns
True if the graph was sucessfully removed (i.e it did exist in the graphs array). False otherwise.
See Also
NavGraph.SafeOnDestroy
Version
Changed in 3.2.5 to call SafeOnDestroy before removing and nulling it in the array instead of removing the element completely in the graphs array.
byte [] SerializeGraphs ( )

Serializes all graphs settings to a byte array.

See Also
DeserializeGraphs(byte[])
byte [] SerializeGraphs ( Pathfinding.Serialization.SerializeSettings  settings)

Serializes all graphs settings and optionally node data to a byte array.

See Also
DeserializeGraphs(byte[])
Pathfinding.Serialization.SerializeSettings
byte [] SerializeGraphs ( Pathfinding.Serialization.SerializeSettings  settings,
out uint  checksum 
)

Main serializer function.

Serializes all graphs to a byte array A similar function exists in the AstarPathEditor.cs script to save additional info

void SerializeGraphsPart ( Pathfinding.Serialization.AstarSerializer  sr)

Serializes common info to the serializer.

Common info is what is shared between the editor serialization and the runtime serializer. This is mostly everything except the graph inspectors which serialize some extra data in the editor

void SetData ( byte[]  data,
uint  checksum 
)
void UpdateShortcuts ( )

Updates shortcuts to the first graph of different types.

Hard coding references to some graph types is not really a good thing imo. I want to keep it dynamic and flexible. But these references ease the use of the system, so I decided to keep them.

Member Data Documentation

bool cacheStartup = false

Should graph-data be cached.

Caching the startup means saving the whole graphs, not only the settings to an internal array (data_cachedStartup) which can be loaded faster than scanning all graphs at startup. This is setup from the editor.

byte [] data
private

Serialized data for all graphs and settings.

byte [] data_backup

Backup data if deserialization failed.

byte [] data_cachedStartup

Serialized data for cached startup.

Deprecated:
uint dataChecksum
TextAsset file_cachedStartup

Serialized data for cached startup.

If set, on start the graphs will be deserialized from this file.

NavGraph [] graphs = new NavGraph[0]

All graphs this instance holds.

This will be filled only after deserialization has completed. May contain null entries if graph have been removed.

System.Type [] graphTypes = null

All supported graph types.

Populated through reflection search

GridGraph gridGraph

Shortcut to the first GridGraph.

Updated at scanning time. This is the only reference to GridGraph in the core pathfinding scripts

bool hasBeenReverted = false

Has the data been reverted by an undo operation.

Used by the editor's undo logic to check if the AstarData has been reverted by an undo operation and should be deserialized.

Version
Only used by Unity versions < U4.5
NavMeshGraph navmesh

Shortcut to the first NavMeshGraph.

Updated at scanning time. This is the only reference to NavMeshGraph in the core pathfinding scripts

PointGraph pointGraph

Shortcut to the first PointGraph.

Updated at scanning time. This is the only reference to PointGraph in the core pathfinding scripts

RecastGraph recastGraph

Shortcut to the first RecastGraph.

Updated at scanning time. This is the only reference to RecastGraph in the core pathfinding scripts.

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
byte [] revertData
UserConnection [] userConnections = new UserConnection[0]

Links placed by the user in the scene view.

Property Documentation

AstarPath active
get

Shortcut to AstarPath.active.


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