using System.Collections; using System.Collections.Generic; using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif public class MGMazeGeneratorEditorGUI : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } } #if UNITY_EDITOR [CustomEditor(typeof(MGMazeGenerator))] public class MazeGeneratorEditor2 : Editor { private void OnDisable() { var mg = (MGMazeGenerator)target; foreach (MGMazeRoom r in mg.rooms) { if (r != null) { r.Width = mg.roomWallLength; r.Depth = mg.roomWallLength; } } if (mg.generateOnRuntime) { var mrooms = GameObject.FindObjectsOfType(); foreach (MGMazeRoom o in mrooms) GameObject.DestroyImmediate(o.gameObject); var mdoors = GameObject.FindObjectsOfType(); foreach (MGDoor o in mdoors) GameObject.DestroyImmediate(o.gameObject); } } override public void OnInspectorGUI() { base.OnInspectorGUI(); var mg = (MGMazeGenerator)target; if (!mg.generateOnRuntime) { if (EditorGUILayout.ToggleLeft("Generate now", false)) { var mrooms = GameObject.FindObjectsOfType(); foreach (MGMazeRoom o in mrooms) GameObject.DestroyImmediate(o.gameObject); var mdoors = GameObject.FindObjectsOfType(); foreach (MGDoor o in mdoors) GameObject.DestroyImmediate(o.gameObject); mg.Generate(); } } if (GUI.changed) { EditorUtility.SetDirty(target); } } } #endif