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;
 }
        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);
        }