Ejemplo n.º 1
0
        /// <summary>
        /// 指定された種類のデバッグメニューを開きます
        /// </summary>
        private void OpenImpl <T>
        (
            DMType type,
            ListCreatorBase <T> creator,
            Action <bool> onSetActive
        )
        {
            // 表示するコンテンツの複製元を取得します
            var original = GetContent(type);

            // 表示するコンテンツを複製して表示を設定します
            var obj = Instantiate(original, m_instantiateRoot);

            obj.DebugMenuScene = this;
            obj.gameObject.SetActive(true);
            obj.SetDisp(creator);

            // 現在表示されているコンテンツを非表示にします
            onSetActive?.Invoke(false);

            // 戻るボタンが押されたら追加したコンテンツを削除して
            // 最初に表示していたコンテンツを表示します
            obj.mOnBack = () =>
            {
                Destroy(obj.gameObject);
                onSetActive?.Invoke(true);
            };
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 指定された種類のデバッグメニューを加算して開きます
 /// </summary>
 public void OpenAdd <T>
 (
     DMType type,
     ListCreatorBase <T> creator,
     GameObject gameObject
 )
 {
     OpenImpl(type, creator, gameObject.SetActive);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 指定されたコンテンツタイプに紐づくオブジェクトを返します
        /// </summary>
        private DebugMenuUIBase GetContent(DMType type)
        {
            switch (type)
            {
            case DMType.TEXT_TAB_6: return(m_textListUI_Tab6);

            case DMType.TEXT_TAB_12: return(m_textListUI_Tab12);

            case DMType.BUTTON_COL_2: return(m_buttonListUI_Col2);

            case DMType.BUTTON_COL_3: return(m_buttonListUI_Col3);

            case DMType.COMMAND_TAB_6: return(m_commandListUI_Tab6);

            case DMType.COMMAND_TAB_12: return(m_commandListUI_Tab12);
            }
            return(null);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 指定された種類のデバッグメニューをルートとして開きます
        /// </summary>
        private void DoOpen <T>(DMType type, ListCreatorBase <T> creator)
        {
            if (m_isOpen)
            {
                return;
            }
            m_isOpen = true;

            m_openBaseUI.SetActive(true);

            OpenImpl(type, creator, isActive =>
            {
                if (!isActive)
                {
                    return;
                }
                Close();
            });
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 指定された種類のデバッグメニューを加算して開きます
 /// </summary>
 protected void OpenAdd <TData>(DMType type, ListCreatorBase <TData> creator)
 {
     m_debugMenuScene.OpenAdd(type, creator, m_gameObject);
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 指定された種類のデバッグメニューを開きます
 /// </summary>
 public static void Open <T>(this DMType self, ListCreatorBase <T> creator)
 {
     UniDebugMenuScene.Open(self, creator);
 }
Ejemplo n.º 7
0
 //==============================================================================
 // 関数(static)
 //==============================================================================
 /// <summary>
 /// 指定された種類のデバッグメニューをルートとして開きます
 /// </summary>
 public static void Open <T>(DMType type, ListCreatorBase <T> creator)
 {
     m_instance.DoOpen(type, creator);
 }