private bool processGUIMenus(SceneView _view) { Rect _rect = new Rect(10, 10, 100, 400); GUILayout.BeginArea(_rect); int selectedGridIndex = 0; switch (m_editMode) { case EditMode.addBlock: { selectedGridIndex = 0; break; } case EditMode.delBlock: { selectedGridIndex = 1; break; } } string[] _buttons = new string[] { "Add", "Delete", "Clear", "Destroy hiden", "Save", "Load", "Exit" }; int oldButtonSelected = selectedGridIndex; selectedGridIndex = GUILayout.SelectionGrid(selectedGridIndex, _buttons, 1); GUILayout.EndArea(); processSelectionGridMenu(_view); if (oldButtonSelected != selectedGridIndex) { switch (selectedGridIndex) { case 0: { m_editMode = EditMode.addBlock; break; } case 1: { m_editMode = EditMode.delBlock; break; } case 2: { m_Instance.ClearDictionary(); break; } case 3: { DeleteHidenObjects(); break; } case 4: { string path = EditorUtility.SaveFilePanelInProject("Select level path", "Level", "xml", "Select a file"); if (path.Length != 0) { m_Instance.SerializeMe(path); } break; } case 5: { string path = EditorUtility.OpenFilePanel("Select level path", Application.dataPath, "xml"); if (path.Length != 0) { m_Instance.ClearDictionary(); ScriptableObject.DestroyImmediate(m_Instance); m_Instance = CubeGridXML.ToGrid(path); CubeGridSingletonObject sing = GameObject.FindObjectOfType <CubeGridSingletonObject>(); if (sing != null) { sing.Grid = m_Instance; } } break; } case 6: { DeselectThisGrid(); break; } } return(true); } ; return(false); }