public override void OnInspectorGUI() { GridSaver saver = target as GridSaver; GUI.enabled = false; EditorGUILayout.ObjectField("Script", MonoScript.FromMonoBehaviour((GridSaver)target), typeof(GridSaver), false); GUI.enabled = true; GUI.enabled = !Application.isPlaying; saver.usePersistentPath = EditorGUILayout.ToggleLeft("Persistent data path as root", saver.usePersistentPath); saver.path = EditorGUILayout.TextField("Path", saver.path); EditorGUILayout.LabelField("Save at: " + saver.rootPath); GridSaveManifest man = saver.gridSaveManifest; // Bug: always shows 0 when in editor mode EditorGUILayout.LabelField("Number of Region saved: " + (man != null ? man.regionPositions.Count : 0).ToString()); GUI.enabled = true; if (GUILayout.Button("Clear save")) { saver.ClearSave(); } }
public override void OnInspectorGUI() { GridGenerator generator = target as GridGenerator; GUI.enabled = false; EditorGUILayout.ObjectField("Script", MonoScript.FromMonoBehaviour((GridGenerator)target), typeof(GridGenerator), false); GUI.enabled = true; if (generator.algorithm == null) { EditorGUILayout.HelpBox("The grid generator requires a subclass of GridGeneratorAlgorithm", MessageType.Warning); } GUI.enabled = !Application.isPlaying; EditorGUILayout.LabelField("Generation algorithm", EditorStyles.boldLabel); generator.algorithm = EditorGUILayout.ObjectField("Algorithm", (GridGeneratorAlgorithm)generator.algorithm, typeof(GridGeneratorAlgorithm), false) as GridGeneratorAlgorithm; generator.generationRegionWidth = Mathf.Max(1, EditorGUILayout.IntField("Generation region width", generator.generationRegionWidth)); generator.generationRegionHeight = Mathf.Max(1, EditorGUILayout.IntField("Generation region height", generator.generationRegionHeight)); EditorGUILayout.LabelField("Saving", EditorStyles.boldLabel); generator.useSave = EditorGUILayout.ToggleLeft("Use saving", generator.useSave); if (generator.useSave) { generator.usePersistentPath = EditorGUILayout.ToggleLeft("Persistent data path as root", generator.usePersistentPath); generator.path = EditorGUILayout.TextField("Path", generator.path); EditorGUILayout.LabelField("Saved at: " + generator.rootPath); GridSaveManifest man = generator.gridSaveManifest; // Bug: always shows 0 when in editor mode EditorGUILayout.LabelField("Number of Region saved: " + man.regionPositions.Count); GUI.enabled = true; if (GUILayout.Button("Clear save")) { generator.ClearSave(); } } GUI.enabled = true; }
void LoadManifest() { if (File.Exists(ManifestPath())) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(ManifestPath(), FileMode.Open); try { _manifest = bf.Deserialize(file) as GridSaveManifest; } catch { Debug.LogError("[Gridlike] Failed to load grid save manifest."); _manifest = new GridSaveManifest(); } file.Close(); } else { _manifest = new GridSaveManifest(); } }