// Default Implementation: just build all items with provided handler. public virtual void BuildGUIImpl(GameObject parent) { DebugMenuUI.CreateTextElement(string.Format("{0} Title", m_DebugPanel.name), m_DebugPanel.name, 14, TextAnchor.MiddleLeft, parent); for (int i = 0; i < m_DebugPanel.itemCount; i++) { DebugItem item = m_DebugPanel.GetDebugItem(i); AddDebugItemUI(item, parent); } }
// Default Implementation: just build all items with provided handler. public virtual void BuildGUIImpl(GameObject parent) { DebugMenuUI.CreateTextElement(string.Format("{0} Title", m_DebugPanel.name), m_DebugPanel.name, 14, TextAnchor.MiddleLeft, parent); m_ItemsUI.Clear(); for (int i = 0; i < m_DebugPanel.itemCount; i++) { DebugItem item = m_DebugPanel.GetDebugItem(i); if (!((item.flags & DebugItemFlag.EditorOnly) != 0)) { DebugItemHandler handler = item.handler; // Should never be null, we have at least the default handler m_ItemsUI.Add(handler.BuildGUI(parent)); } } }
public void OnEnable() { #if UNITY_EDITOR UnityEditor.Undo.undoRedoPerformed += OnUndoRedoPerformed; #endif // Populate item states DebugMenuManager dmm = DebugMenuManager.instance; for (int panelIdx = 0; panelIdx < dmm.panelCount; ++panelIdx) { DebugPanel panel = dmm.GetDebugPanel(panelIdx); for (int itemIdx = 0; itemIdx < panel.itemCount; ++itemIdx) { DebugItem item = panel.GetDebugItem(itemIdx); DebugItemState debugItemState = FindDebugItemState(item); if (debugItemState == null) { debugItemState = item.handler.CreateDebugItemState(); debugItemState.hideFlags = HideFlags.DontSave; debugItemState.Initialize(item); debugItemState.SetValue(item.GetValue()); AddDebugItemState(debugItemState); } } } DebugMenuManager.instance.SetDebugMenuState(this); }
public void ReInitializeDebugItemStates() { CleanUp(); // Populate item states DebugMenuManager dmm = DebugMenuManager.instance; for (int panelIdx = 0; panelIdx < dmm.panelCount; ++panelIdx) { DebugPanel panel = dmm.GetDebugPanel(panelIdx); for (int itemIdx = 0; itemIdx < panel.itemCount; ++itemIdx) { DebugItem item = panel.GetDebugItem(itemIdx); DebugItemState debugItemState = FindDebugItemState(item); if (debugItemState == null) { debugItemState = item.handler.CreateDebugItemState(); if (debugItemState != null) { debugItemState.hideFlags = HideFlags.DontSave; debugItemState.Initialize(item); debugItemState.SetValue(item.GetValue()); AddDebugItemState(debugItemState); } else { Debug.LogWarning(String.Format("DebugItemState for item {0} of type {1} is not provided.\nDid you implement CreateDebugItemState in your custom Handler?", item.name, item.type)); } } } } UpdateAllDebugItems(); }
public void RemoveDebugItem(string debugPanelName, string name) { DebugPanel debugPanel = GetDebugPanel(debugPanelName); if (debugPanel != null) { DebugItem item = debugPanel.GetDebugItem(name); if (item != null) { debugPanel.RemoveDebugItem(item); } } m_DebugMenuStateDirty = true; }