private List <T_OpItem> GetListByMode(E_LevelOp inMode) { switch (inMode) { case E_LevelOp.Lightening: return(m_ToolsData.m_LighteningMod); case E_LevelOp.PVS: return(m_ToolsData.m_PVSMod); case E_LevelOp.Navmesh: return(m_ToolsData.m_NavMeshMod); default: Debug.LogError("LevelTools.OnGUI - invalid operation mode"); return(null); } ; }
// Implement your own editor GUI here. void OnGUI() { if (m_ValidScene == false) { return; } if (m_ToolsData == null) { m_Mode = (E_LevelOp)GUILayout.Toolbar((int)m_Mode, LevelOperationNames, "LargeButton"); VizualizeEmptyDialog(); return; } bool orig_gui_enabled = GUI.enabled; GUI.enabled = (m_ToolsData.m_ActiveOperation == E_LevelOp.None); m_Mode = (E_LevelOp)GUILayout.Toolbar((int)m_Mode, LevelOperationNames, "LargeButton"); GUI.changed = false; VizualizeList(GetListByMode(m_Mode)); /* * switch(m_Mode) * { * case E_LevelOp.Lightening: * VizualizeList(ref m_ToolsData.m_LighteningMod); * break; * case E_LevelOp.PVS: * VizualizeList(ref m_ToolsData.m_PVSMod); * break; * case E_LevelOp.Navmesh: * VizualizeList(ref m_ToolsData.m_NavMeshMod); * break; * default: * Debug.LogError("LevelTools.OnGUI - invalid operation mode"); * break; * }; */ if (GUI.changed == true) { //Debug.Log("Gui change ..."); EditorUtility.SetDirty(m_ToolsData); } GUILayout.FlexibleSpace(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Clear", GUILayout.Width(100)) == true) { GetListByMode(m_Mode).Clear(); EditorUtility.SetDirty(m_ToolsData); } GUILayout.Space(50); // Do actual selected operation if (GUILayout.Button("DoIt", GUILayout.Width(100)) == true) { DoIt(GetListByMode(m_Mode), m_ToolsData.m_BackupDtata); m_ToolsData.m_ActiveOperation = m_Mode; } GUI.enabled = !GUI.enabled; if (GUILayout.Button("Back", GUILayout.Width(100)) == true) { BackDoIt(m_ToolsData.m_BackupDtata); m_ToolsData.m_BackupDtata.Clear(); m_ToolsData.m_ActiveOperation = E_LevelOp.None; } EditorGUILayout.EndHorizontal(); GUI.enabled = orig_gui_enabled; }