Esempio 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);
            };
        }
Esempio n. 2
0
 /// <summary>
 /// 指定された種類のデバッグメニューを加算して開きます
 /// </summary>
 public void OpenAdd <T>
 (
     DMType type,
     ListCreatorBase <T> creator,
     GameObject gameObject
 )
 {
     OpenImpl(type, creator, gameObject.SetActive);
 }
Esempio n. 3
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();
            });
        }
Esempio n. 4
0
 /// <summary>
 /// 指定された種類のデバッグメニューを開きます
 /// </summary>
 public static void Open <T>(this DMType self, ListCreatorBase <T> creator)
 {
     UniDebugMenuScene.Open(self, creator);
 }
Esempio n. 5
0
 //==============================================================================
 // 関数(static)
 //==============================================================================
 /// <summary>
 /// 指定された種類のデバッグメニューをルートとして開きます
 /// </summary>
 public static void Open <T>(DMType type, ListCreatorBase <T> creator)
 {
     m_instance.DoOpen(type, creator);
 }
Esempio n. 6
0
 /// <summary>
 /// 指定された種類のデバッグメニューを加算して開きます
 /// </summary>
 protected void OpenAdd <TData>(DMType type, ListCreatorBase <TData> creator)
 {
     m_debugMenuScene.OpenAdd(type, creator, m_gameObject);
 }