本文整理汇总了C#中Pathfinding.AstarSerializer.OpenSerialize方法的典型用法代码示例。如果您正苦于以下问题:C# AstarSerializer.OpenSerialize方法的具体用法?C# AstarSerializer.OpenSerialize怎么用?C# AstarSerializer.OpenSerialize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pathfinding.AstarSerializer
的用法示例。
在下文中一共展示了AstarSerializer.OpenSerialize方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SerializeGraphs
/** Main serializer function, a similar one exists in the AstarEditor.cs script to save additional info */
public byte[] SerializeGraphs(AstarSerializer serializer)
{
serializer.OpenSerialize ();
SerializeGraphsPart (serializer);
serializer.Close ();
byte[] bytes = (serializer.writerStream.BaseStream as System.IO.MemoryStream).ToArray ();
Debug.Log ("Got a whole bunch of data, "+bytes.Length+" bytes");
return bytes;
}
示例2: ApplyUndo
//.........这里部分代码省略.........
sz.OpenDeserialize (undoState.data);
sz.DeSerializeSettings (target,AstarPath.active);
sz.Close ();
}
}
public void ModifierKeysChanged () {
return;
if (!editor.enableUndo) {
return;
}
if (undoState == null) {
return;
}
//The user has tried to undo something, apply that
if (undoState.hasBeenReverted) {
ApplyUndo ();
GUI.changed = true;
editor.Repaint ();
}
}
/** Handles undo operations for the graph *
public void HandleUndo (NavGraph target) {
return;
if (!editor.enableUndo) {
return;
}
if (undoState == null) {
undoState = ScriptableObject.CreateInstance<GraphUndo>();
}
Event e = Event.current;
//ModifierKeysChanged ();
//To serialize settings for a grid graph takes from 0.00 ms to 7.8 ms (usually 0.0, but sometimes jumps up to 7.8 (no values in between)
if ((e.button == 0 && (e.type == EventType.MouseDown || e.type == EventType.MouseUp)) || (e.isKey && (e.keyCode == KeyCode.Tab || e.keyCode == KeyCode.Return))) {
System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
stopWatch.Start();
//Serialize the settings of the graph
byte[] bytes = GetSerializedBytes (target);
bool isDifferent = false;
if (undoState.data == null) {
Debug.LogError ("UndoState.data == null - This should not happen");
return;
}
//Check if the data is any different from the last saved data, if it isn't, don't save it
if (bytes.Length != undoState.data.Length) {
isDifferent = true;
} else {
for (int i=0;i<bytes.Length;i++) {
if (bytes[i] != undoState.data[i]) {
isDifferent = true;
break;
}
}
}
//Only save undo if the data was different from the last saved undo
if (isDifferent) {
//This flag is set to true so we can detect if the object has been reverted
undoState.hasBeenReverted = true;
Undo.RegisterUndo (undoState,"A* inspector");
//Assign the new data
undoState.data = bytes;
//Undo.SetSnapshotTarget(undoState,"A* inspector");
//Undo.CreateSnapshot ();
//Undo.RegisterSnapshot();
undoState.hasBeenReverted = false;
Debug.Log ("Saved "+bytes.Length+" bytes");
stopWatch.Stop();
Debug.Log ("Adding Undo "+stopWatch.Elapsed.ToString ());
}
}
}*/
/** Returns a byte array with the settings of the graph. This function serializes the graph's settings and stores them in a byte array, used for undo operations. This will not save any additional metadata such as which A* version we are working on. */
private byte[] GetSerializedBytes(NavGraph target)
{
//Serialize the settings of the graph
AstarSerializer sz = new AstarSerializer (editor.script);
sz.OpenSerialize ();
sz.SerializeSettings (target,AstarPath.active);
sz.Close ();
byte[] bytes = (sz.writerStream.BaseStream as System.IO.MemoryStream).ToArray ();
return bytes;
}
示例3: SerializeGraphs
public byte[] SerializeGraphs(AstarSerializer serializer)
{
//System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch();
//stopWatch.Start();
CheckGraphEditors ();
serializer.OpenSerialize ();
script.astarData.SerializeGraphsPart (serializer);
for (int i=0;i<script.graphs.Length;i++) {
NavGraph graph = script.graphs[i];
GraphEditor graphEditor = graphEditors[i];
serializer.AddAnchor ("EditorSettings_"+i);
ISerializableGraphEditor serializableEditor = graphEditor as ISerializableGraphEditor;
if (serializableEditor != null) {
//@Add
//Set an unique prefix for all variables in this graph
serializer.sPrefix = i.ToString ()+"E";
serializer.SerializeEditorSettings (graph,serializableEditor,script);
//serializableEditor.SerializeSettings (graph,serializer);
}
}
serializer.Close ();
byte[] bytes = (serializer.writerStream.BaseStream as System.IO.MemoryStream).ToArray ();
//stopWatch.Stop();
//Debug.Log ("Serializing Graphs - Took "+stopWatch.Elapsed.ToString ());
return bytes;
}