public DebugItem(string name, string panelName, Type type, Func <object> getter, Action <object> setter, DebugItemFlag flags = DebugItemFlag.None, DebugItemHandler handler = null)
 {
     m_Type      = type;
     m_Setter    = setter;
     m_Getter    = getter;
     m_Name      = name;
     m_PanelName = panelName;
     m_Handler   = handler;
     m_Flags     = flags;
 }
Example #2
0
        // 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 AddDebugItem <DebugItemType>(string debugPanelName, string name, Func <object> getter, Action <object> setter = null, DebugItemFlag flags = DebugItemFlag.None, DebugItemHandler handler = null)
        {
            DebugPanel debugPanel = GetDebugPanel(debugPanelName);

            // If the menu does not exist, create a generic one. This way, users don't have to explicitely create a new DebugMenu class if they don't need any particular overriding of default behavior.
            if (debugPanel == null)
            {
                debugPanel = new DebugPanel <DebugPanelUI>(debugPanelName);
                AddDebugPanel(debugPanel);
            }

            if (debugPanel != null)
            {
                debugPanel.AddDebugItem <DebugItemType>(name, getter, setter, flags, handler);
            }

            m_DebugMenuStateDirty = true;
        }
        public void AddDebugItem <DebugPanelType, DebugItemType>(string name, Func <object> getter, Action <object> setter = null, DebugItemFlag flags = DebugItemFlag.None, DebugItemHandler handler = null) where DebugPanelType : DebugPanel
        {
            DebugPanelType debugPanel = GetDebugPanel <DebugPanelType>();

            if (debugPanel != null)
            {
                debugPanel.AddDebugItem <DebugItemType>(name, getter, setter, flags, handler);
            }

            m_DebugMenuStateDirty = true;
        }
        public void AddDebugItem <ItemType>(string itemName, Func <object> getter, Action <object> setter, DebugItemFlag flags = DebugItemFlag.None, DebugItemHandler handler = null)
        {
            if (handler == null)
            {
                handler = new DefaultDebugItemHandler();
            }

            DebugItem oldItem = GetDebugItem(itemName);

            if (oldItem != null)
            {
                RemoveDebugItem(oldItem);
            }

            DebugItem newItem = new DebugItem(itemName, m_Name, typeof(ItemType), getter, setter, flags, handler);

            handler.SetDebugItem(newItem);
            m_Items.Add(newItem);
        }