A* Pathfinding Project
4.0.3
The A* Pathfinding Project for Unity 3D
|
Stores the navigation graphs for the A* Pathfinding System. More...
Stores the navigation graphs for the A* Pathfinding System.
An instance of this class is assigned to AstarPath.data, 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 | 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. | |
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) |
IEnumerable | GetRaycastableGraphs () |
All graphs which implements the UpdateableGraph interface. | |
IEnumerable | GetUpdateableGraphs () |
All graphs which implements the UpdateableGraph interface. | |
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) |
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 |
Should graph-data be cached. | |
byte[] | data_backup |
Backup data if deserialization failed. | |
byte[] | data_cachedStartup |
Serialized data for cached startup. | |
TextAsset | file_cachedStartup |
Serialized data for cached startup. | |
NavGraph[] | graphs = new NavGraph[0] |
All graphs this instance holds. | |
Package Functions | |
NavGraph | CreateGraph (System.Type type) |
Creates a new graph instance of type type. | |
Properties | |
static AstarPath | active [get] |
Shortcut to AstarPath.active. | |
byte[] | data [get, set] |
Serialized data for all graphs and settings. | |
System.Type[] | graphTypes [get, set] |
All supported graph types. | |
GridGraph | gridGraph [get, set] |
Shortcut to the first GridGraph. | |
LayerGridGraph | layerGridGraph [get, set] |
Shortcut to the first LayerGridGraph. | |
NavMeshGraph | navmesh [get, set] |
Shortcut to the first NavMeshGraph. | |
PointGraph | pointGraph [get, set] |
Shortcut to the first PointGraph. | |
RecastGraph | recastGraph [get, set] |
Shortcut to the first RecastGraph. | |
Private Member Functions | |
void | AddGraph (NavGraph graph) |
Adds the specified graph to the graphs array. | |
void | ClearGraphs () |
Destroys all graphs and sets graphs to null. | |
Private Attributes | |
string | dataString |
Serialized data for all graphs and settings. | |
byte[] | upgradeData |
Data from versions from before 3.6.1. | |
void Awake | ( | ) |
Loads the graphs from memory, will load cached graphs if any exists.
|
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
|
package |
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.
An error will be logged if deserialization fails.
void DeserializeGraphsAdditive | ( | byte[] | bytes | ) |
Deserializes graphs from the specified byte array additively.
An error will be logged if deserialization fails. 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
In most cases you should use the DeserializeGraphs or DeserializeGraphsAdditive method instead.
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
In most cases you should use the DeserializeGraphs or DeserializeGraphsAdditive method instead.
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 | ) |
void FindGraphTypes | ( | ) |
Find all graph types supported in this build.
Using reflection, the assembly is searched for types which inherit from NavGraph.
byte [] GetData | ( | ) |
Returns the graph which contains the specified node.
The graph must be in the graphs array.
System.Type GetGraphType | ( | string | type | ) |
IEnumerable GetRaycastableGraphs | ( | ) |
All graphs which implements the UpdateableGraph interface.
IEnumerable GetUpdateableGraphs | ( | ) |
All graphs which implements the UpdateableGraph interface.
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.
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.
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 | ) |
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.
bool cacheStartup |
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_backup |
Backup data if deserialization failed.
byte [] data_cachedStartup |
Serialized data for cached startup.
|
private |
Serialized data for all graphs and settings.
Stored as a base64 encoded string because otherwise Unity's Undo system would sometimes corrupt the byte data (because it only stores deltas).
This can be accessed as a byte array from the data property.
TextAsset file_cachedStartup |
Serialized data for cached startup.
If set, on start the graphs will be deserialized from this file.
All graphs this instance holds.
This will be filled only after deserialization has completed. May contain null entries if graph have been removed.
|
private |
Data from versions from before 3.6.1.
Used for handling upgrades
|
staticget |
Shortcut to AstarPath.active.
|
getsetprivate |
Serialized data for all graphs and settings.
|
getset |
All supported graph types.
Populated through reflection search
|
getset |
Shortcut to the first LayerGridGraph.
Updated at scanning time.
|
getset |
Shortcut to the first NavMeshGraph.
Updated at scanning time
|
getset |
Shortcut to the first PointGraph.
Updated at scanning time
|
getset |
Shortcut to the first RecastGraph.
Updated at scanning time.