From bd68a143c53a7e03362ff994839bd8277fe11577 Mon Sep 17 00:00:00 2001 From: ALEXTANG <574809918@qq.com> Date: Mon, 10 Apr 2023 21:01:45 +0800 Subject: [PATCH] UIModule --- Assets/TEngine/Editor/Inspector/UIModuleInspector.cs | 3 +++ Assets/TEngine/Runtime/GameFramework/UI/UIModule.cs | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/Assets/TEngine/Editor/Inspector/UIModuleInspector.cs b/Assets/TEngine/Editor/Inspector/UIModuleInspector.cs index 37321cd3..e35893b2 100644 --- a/Assets/TEngine/Editor/Inspector/UIModuleInspector.cs +++ b/Assets/TEngine/Editor/Inspector/UIModuleInspector.cs @@ -6,6 +6,7 @@ namespace TEngine.Editor.Inspector internal sealed class UIModuleInspector : GameFrameworkInspector { private SerializedProperty m_InstanceRoot = null; + private SerializedProperty m_dontDestroyUIRoot = null; private SerializedProperty m_UICamera = null; private SerializedProperty m_UIGroups = null; @@ -23,6 +24,7 @@ namespace TEngine.Editor.Inspector EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode); { EditorGUILayout.PropertyField(m_InstanceRoot); + EditorGUILayout.PropertyField(m_dontDestroyUIRoot); EditorGUILayout.PropertyField(m_UICamera); m_UIWindowHelperInfo.Draw(); m_UIGroupHelperInfo.Draw(); @@ -50,6 +52,7 @@ namespace TEngine.Editor.Inspector private void OnEnable() { m_InstanceRoot = serializedObject.FindProperty("m_InstanceRoot"); + m_dontDestroyUIRoot = serializedObject.FindProperty("m_dontDestroyUIRoot"); m_UICamera = serializedObject.FindProperty("m_UICamera"); m_UIGroups = serializedObject.FindProperty("m_UIGroups"); diff --git a/Assets/TEngine/Runtime/GameFramework/UI/UIModule.cs b/Assets/TEngine/Runtime/GameFramework/UI/UIModule.cs index 547798ae..780f91e8 100644 --- a/Assets/TEngine/Runtime/GameFramework/UI/UIModule.cs +++ b/Assets/TEngine/Runtime/GameFramework/UI/UIModule.cs @@ -24,6 +24,8 @@ namespace TEngine private const int DefaultPriority = 0; [SerializeField] private Transform m_InstanceRoot = null; + + [SerializeField] private bool m_dontDestroyUIRoot = true; [SerializeField] private Camera m_UICamera = null; @@ -88,6 +90,10 @@ namespace TEngine m_InstanceRoot.SetParent(gameObject.transform); m_InstanceRoot.localScale = Vector3.one; } + else if (m_dontDestroyUIRoot) + { + DontDestroyOnLoad(m_InstanceRoot.parent); + } m_InstanceRoot.gameObject.layer = LayerMask.NameToLayer("UI"); UIRootStatic = m_InstanceRoot;