mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-07 16:45:10 +00:00
UIComponent
UIComponent
This commit is contained in:
@@ -162,6 +162,7 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 43232120}
|
||||
- component: {fileID: 43232121}
|
||||
m_Layer: 0
|
||||
m_Name: UI
|
||||
m_TagString: Untagged
|
||||
@@ -183,6 +184,33 @@ Transform:
|
||||
m_Father: {fileID: 2061060682}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &43232121
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 43232119}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9497504d71104685ad1464b42219c763, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_InstanceRoot: {fileID: 88107082}
|
||||
m_UICamera: {fileID: 110205813}
|
||||
m_UIWindowHelperTypeName: TEngine.DefaultUIWindowHelper
|
||||
mCustomUIWindowHelper: {fileID: 0}
|
||||
m_UIGroupHelperTypeName: TEngine.DefaultUIGroupHelper
|
||||
m_CustomUIGroupHelper: {fileID: 0}
|
||||
m_UIGroups:
|
||||
- m_Name: Bottom
|
||||
m_Depth: 0
|
||||
- m_Name: UI
|
||||
m_Depth: 1
|
||||
- m_Name: Top
|
||||
m_Depth: 2
|
||||
- m_Name: System
|
||||
m_Depth: 3
|
||||
--- !u!1 &88107081
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
69
Assets/TEngine/Editor/Inspector/UIComponentInspector.cs
Normal file
69
Assets/TEngine/Editor/Inspector/UIComponentInspector.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using UnityEditor;
|
||||
|
||||
namespace TEngine.Editor.Inspector
|
||||
{
|
||||
[CustomEditor(typeof(UIComponent))]
|
||||
internal sealed class UIComponentInspector : GameFrameworkInspector
|
||||
{
|
||||
private SerializedProperty m_InstanceRoot = null;
|
||||
private SerializedProperty m_UICamera = null;
|
||||
private SerializedProperty m_UIGroups = null;
|
||||
|
||||
private HelperInfo<UIWindowHelperBase> m_UIWindowHelperInfo = new HelperInfo<UIWindowHelperBase>("UIWindow");
|
||||
private HelperInfo<UIGroupHelperBase> m_UIGroupHelperInfo = new HelperInfo<UIGroupHelperBase>("UIGroup");
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
base.OnInspectorGUI();
|
||||
|
||||
serializedObject.Update();
|
||||
|
||||
UIComponent t = (UIComponent)target;
|
||||
|
||||
EditorGUI.BeginDisabledGroup(EditorApplication.isPlayingOrWillChangePlaymode);
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_InstanceRoot);
|
||||
EditorGUILayout.PropertyField(m_UICamera);
|
||||
m_UIWindowHelperInfo.Draw();
|
||||
m_UIGroupHelperInfo.Draw();
|
||||
EditorGUILayout.PropertyField(m_UIGroups, true);
|
||||
}
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
if (EditorApplication.isPlaying && IsPrefabInHierarchy(t.gameObject))
|
||||
{
|
||||
EditorGUILayout.LabelField("UI Group Count", t.UIGroupCount.ToString());
|
||||
}
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
|
||||
Repaint();
|
||||
}
|
||||
|
||||
protected override void OnCompileComplete()
|
||||
{
|
||||
base.OnCompileComplete();
|
||||
|
||||
RefreshTypeNames();
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
m_InstanceRoot = serializedObject.FindProperty("m_InstanceRoot");
|
||||
m_UICamera = serializedObject.FindProperty("m_UICamera");
|
||||
m_UIGroups = serializedObject.FindProperty("m_UIGroups");
|
||||
|
||||
m_UIWindowHelperInfo.Init(serializedObject);
|
||||
m_UIGroupHelperInfo.Init(serializedObject);
|
||||
|
||||
RefreshTypeNames();
|
||||
}
|
||||
|
||||
private void RefreshTypeNames()
|
||||
{
|
||||
m_UIWindowHelperInfo.Refresh();
|
||||
m_UIGroupHelperInfo.Refresh();
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cfa63d9134ce4fad9ced6e59e3fb776f
|
||||
timeCreated: 1680514613
|
3
Assets/TEngine/Runtime/GameFramework/UI.meta
Normal file
3
Assets/TEngine/Runtime/GameFramework/UI.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d40e71adcb74a3092602909942ff1d3
|
||||
timeCreated: 1680511299
|
@@ -0,0 +1,77 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// 默认界面辅助器。
|
||||
/// </summary>
|
||||
public class DefaultUIWindowHelper : UIWindowHelperBase
|
||||
{
|
||||
private ResourceComponent m_ResourceComponent = null;
|
||||
|
||||
private Vector2 m_Half = new Vector2(0.5f,0.5f);
|
||||
|
||||
private int m_UILayer;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
m_UILayer = LayerMask.NameToLayer("UI");
|
||||
m_ResourceComponent = GameEntry.GetComponent<ResourceComponent>();
|
||||
if (m_ResourceComponent == null)
|
||||
{
|
||||
Log.Fatal("Resource component is invalid.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 实例化界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAsset">要实例化的界面资源。</param>
|
||||
public override object InstantiateUIWindow(object uiWindowAsset)
|
||||
{
|
||||
return Instantiate((Object)uiWindowAsset);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowInstance">界面实例。</param>
|
||||
/// <param name="uiGroup">界面所属的界面组。</param>
|
||||
/// <param name="userData">用户自定义数据。</param>
|
||||
/// <returns>界面。</returns>
|
||||
public override UIWindow CreateUIWindow(object uiWindowInstance, IUIGroup uiGroup, object userData)
|
||||
{
|
||||
GameObject obj = uiWindowInstance as GameObject;
|
||||
if (obj == null)
|
||||
{
|
||||
Log.Error("UI form instance is invalid.");
|
||||
return null;
|
||||
}
|
||||
|
||||
Transform trans = obj.transform;
|
||||
trans.SetParent(((MonoBehaviour)uiGroup.Helper).transform);
|
||||
trans.localScale = Vector3.one;
|
||||
trans.localPosition = Vector3.zero;
|
||||
obj.layer = m_UILayer;
|
||||
|
||||
RectTransform rectTransform = obj.GetComponent<RectTransform>();
|
||||
rectTransform.anchorMin = m_Half;
|
||||
rectTransform.anchorMax = m_Half;
|
||||
rectTransform.anchoredPosition = Vector2.zero;
|
||||
// return obj.GetOrAddComponent<UIWindow>();
|
||||
return new UIWindow();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 释放界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAsset">要释放的界面资源。</param>
|
||||
/// <param name="uiWindowInstance">要释放的界面实例。</param>
|
||||
public override void ReleaseUIWindow(object uiWindowAsset, object uiWindowInstance)
|
||||
{
|
||||
// m_ResourceComponent.UnloadAsset(uiWindowAsset);
|
||||
Destroy((Object)uiWindowInstance);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 22c9da1f4aa8420ab1210d65b8403993
|
||||
timeCreated: 1680514816
|
13
Assets/TEngine/Runtime/GameFramework/UI/IUIBehaviour.cs
Normal file
13
Assets/TEngine/Runtime/GameFramework/UI/IUIBehaviour.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace TEngine
|
||||
{
|
||||
public interface IUIBehaviour
|
||||
{
|
||||
void ScriptGenerator();
|
||||
void RegisterEvent();
|
||||
void OnCreate();
|
||||
void OnUpdate(float elapseSeconds, float realElapseSeconds);
|
||||
void OnClose(bool isShutdown, object userData);
|
||||
void OnPause();
|
||||
void OnResume();
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3dacc243d8184148b8dfedbf13368024
|
||||
timeCreated: 1680514817
|
114
Assets/TEngine/Runtime/GameFramework/UI/IUIGroup.cs
Normal file
114
Assets/TEngine/Runtime/GameFramework/UI/IUIGroup.cs
Normal file
@@ -0,0 +1,114 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// 界面组接口。
|
||||
/// </summary>
|
||||
public interface IUIGroup
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取界面组名称。
|
||||
/// </summary>
|
||||
string Name
|
||||
{
|
||||
get;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置界面组深度。
|
||||
/// </summary>
|
||||
int Depth
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取或设置界面组是否暂停。
|
||||
/// </summary>
|
||||
bool Pause
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取界面组中界面数量。
|
||||
/// </summary>
|
||||
int UIWindowCount
|
||||
{
|
||||
get;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前界面。
|
||||
/// </summary>
|
||||
UIWindow CurrentUIWindow
|
||||
{
|
||||
get;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取界面组辅助器。
|
||||
/// </summary>
|
||||
UIGroupHelperBase Helper
|
||||
{
|
||||
get;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 界面组中是否存在界面。
|
||||
/// </summary>
|
||||
/// <param name="serialId">界面序列编号。</param>
|
||||
/// <returns>界面组中是否存在界面。</returns>
|
||||
bool HasUIWindow(int serialId);
|
||||
|
||||
/// <summary>
|
||||
/// 界面组中是否存在界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAssetName">界面资源名称。</param>
|
||||
/// <returns>界面组中是否存在界面。</returns>
|
||||
bool HasUIWindow(string uiWindowAssetName);
|
||||
|
||||
/// <summary>
|
||||
/// 从界面组中获取界面。
|
||||
/// </summary>
|
||||
/// <param name="serialId">界面序列编号。</param>
|
||||
/// <returns>要获取的界面。</returns>
|
||||
UIWindow GetUIWindow(int serialId);
|
||||
|
||||
/// <summary>
|
||||
/// 从界面组中获取界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAssetName">界面资源名称。</param>
|
||||
/// <returns>要获取的界面。</returns>
|
||||
UIWindow GetUIWindow(string uiWindowAssetName);
|
||||
|
||||
/// <summary>
|
||||
/// 从界面组中获取界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAssetName">界面资源名称。</param>
|
||||
/// <returns>要获取的界面。</returns>
|
||||
UIWindow[] GetUIWindows(string uiWindowAssetName);
|
||||
|
||||
/// <summary>
|
||||
/// 从界面组中获取界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAssetName">界面资源名称。</param>
|
||||
/// <param name="results">要获取的界面。</param>
|
||||
void GetUIWindow(string uiWindowAssetName, List<UIWindow> results);
|
||||
|
||||
/// <summary>
|
||||
/// 从界面组中获取所有界面。
|
||||
/// </summary>
|
||||
/// <returns>界面组中的所有界面。</returns>
|
||||
UIWindow[] GetAllUIWindows();
|
||||
|
||||
/// <summary>
|
||||
/// 从界面组中获取所有界面。
|
||||
/// </summary>
|
||||
/// <param name="results">界面组中的所有界面。</param>
|
||||
void GetAllUIWindows(List<UIWindow> results);
|
||||
}
|
||||
}
|
3
Assets/TEngine/Runtime/GameFramework/UI/IUIGroup.cs.meta
Normal file
3
Assets/TEngine/Runtime/GameFramework/UI/IUIGroup.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 02d65f2c8a574a5e902b76c27a59ce24
|
||||
timeCreated: 1680511360
|
7
Assets/TEngine/Runtime/GameFramework/UI/UIBase.cs
Normal file
7
Assets/TEngine/Runtime/GameFramework/UI/UIBase.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace TEngine
|
||||
{
|
||||
public class UIBase
|
||||
{
|
||||
|
||||
}
|
||||
}
|
3
Assets/TEngine/Runtime/GameFramework/UI/UIBase.cs.meta
Normal file
3
Assets/TEngine/Runtime/GameFramework/UI/UIBase.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 62c603695cbe4b8bb59a94d907ca7f65
|
||||
timeCreated: 1680514241
|
124
Assets/TEngine/Runtime/GameFramework/UI/UIComponent.cs
Normal file
124
Assets/TEngine/Runtime/GameFramework/UI/UIComponent.cs
Normal file
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// UI组件。
|
||||
/// </summary>
|
||||
[DisallowMultipleComponent]
|
||||
public sealed partial class UIComponent : GameFrameworkComponent
|
||||
{
|
||||
private const int DefaultPriority = 0;
|
||||
|
||||
[SerializeField]
|
||||
private Transform m_InstanceRoot = null;
|
||||
|
||||
[SerializeField]
|
||||
private Camera m_UICamera = null;
|
||||
|
||||
[SerializeField]
|
||||
private string m_UIWindowHelperTypeName = "TEngine.DefaultUIWindowHelper";
|
||||
|
||||
[SerializeField]
|
||||
private UIWindowHelperBase mCustomUIWindowHelper = null;
|
||||
|
||||
[SerializeField]
|
||||
private string m_UIGroupHelperTypeName = "TEngine.DefaultUIGroupHelper";
|
||||
|
||||
[SerializeField]
|
||||
private UIGroupHelperBase m_CustomUIGroupHelper = null;
|
||||
|
||||
[SerializeField]
|
||||
private UIGroup[] m_UIGroups = null;
|
||||
|
||||
public const int GROUP_DEEP = 10000;
|
||||
public const int WINDOWS_DEEP = 100;
|
||||
|
||||
/// <summary>
|
||||
/// UI根节点。
|
||||
/// </summary>
|
||||
public Transform UIRoot => m_InstanceRoot;
|
||||
|
||||
/// <summary>
|
||||
/// UI根节点。
|
||||
/// </summary>
|
||||
public Camera UICamera => m_UICamera;
|
||||
|
||||
/// <summary>
|
||||
/// 获取界面组数量。
|
||||
/// </summary>
|
||||
public int UIGroupCount => m_UIGroups?.Length ?? 0;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
RootComponent rootComponent = GameEntry.GetComponent<RootComponent>();
|
||||
if (rootComponent == null)
|
||||
{
|
||||
Log.Fatal("Base component is invalid.");
|
||||
return;
|
||||
}
|
||||
|
||||
UIWindowHelperBase uiWindowHelper = Helper.CreateHelper(m_UIWindowHelperTypeName, mCustomUIWindowHelper);
|
||||
if (uiWindowHelper == null)
|
||||
{
|
||||
Log.Error("Can not create UI form helper.");
|
||||
return;
|
||||
}
|
||||
|
||||
uiWindowHelper.name = "UI Form Helper";
|
||||
Transform transform = uiWindowHelper.transform;
|
||||
transform.SetParent(this.transform);
|
||||
transform.localScale = Vector3.one;
|
||||
|
||||
if (m_InstanceRoot == null)
|
||||
{
|
||||
m_InstanceRoot = new GameObject("UI Form Instances").transform;
|
||||
m_InstanceRoot.SetParent(gameObject.transform);
|
||||
m_InstanceRoot.localScale = Vector3.one;
|
||||
}
|
||||
|
||||
m_InstanceRoot.gameObject.layer = LayerMask.NameToLayer("UI");
|
||||
|
||||
for (int i = 0; i < m_UIGroups.Length; i++)
|
||||
{
|
||||
if (!AddUIGroup(m_UIGroups[i].Name, m_UIGroups[i].Depth))
|
||||
{
|
||||
Log.Warning("Add UI group '{0}' failure.", m_UIGroups[i].Name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 增加界面组。
|
||||
/// </summary>
|
||||
/// <param name="uiGroupName">界面组名称。</param>
|
||||
/// <param name="depth">界面组深度。</param>
|
||||
/// <returns>是否增加界面组成功。</returns>
|
||||
public bool AddUIGroup(string uiGroupName, int depth)
|
||||
{
|
||||
UIGroupHelperBase uiGroupHelper = Helper.CreateHelper(m_UIGroupHelperTypeName, m_CustomUIGroupHelper, m_UIGroups.Length);
|
||||
if (uiGroupHelper == null)
|
||||
{
|
||||
Log.Error("Can not create UI group helper.");
|
||||
return false;
|
||||
}
|
||||
|
||||
uiGroupHelper.name = Utility.Text.Format("UI Group - {0}", uiGroupName);
|
||||
uiGroupHelper.gameObject.layer = LayerMask.NameToLayer("UI");
|
||||
Transform transform = uiGroupHelper.transform;
|
||||
transform.SetParent(m_InstanceRoot);
|
||||
transform.localScale = Vector3.one;
|
||||
transform.localPosition = Vector3.zero;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9497504d71104685ad1464b42219c763
|
||||
timeCreated: 1680511581
|
3
Assets/TEngine/Runtime/GameFramework/UI/UIGroup.meta
Normal file
3
Assets/TEngine/Runtime/GameFramework/UI/UIGroup.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b10f86b28ebd47b0b9dad8bbbfa0df06
|
||||
timeCreated: 1680515210
|
@@ -0,0 +1,44 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// 默认界面组辅助器。
|
||||
/// </summary>
|
||||
public class DefaultUIGroupHelper : UIGroupHelperBase
|
||||
{
|
||||
public const int DepthFactor = 10000;
|
||||
private int m_Depth = 0;
|
||||
private Canvas m_CachedCanvas = null;
|
||||
|
||||
/// <summary>
|
||||
/// 设置界面组深度。
|
||||
/// </summary>
|
||||
/// <param name="depth">界面组深度。</param>
|
||||
public override void SetDepth(int depth)
|
||||
{
|
||||
m_Depth = depth;
|
||||
m_CachedCanvas.overrideSorting = true;
|
||||
m_CachedCanvas.sortingOrder = DepthFactor * depth;
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_CachedCanvas = gameObject.GetOrAddComponent<Canvas>();
|
||||
gameObject.GetOrAddComponent<GraphicRaycaster>();
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
m_CachedCanvas.overrideSorting = true;
|
||||
m_CachedCanvas.sortingOrder = DepthFactor * m_Depth;
|
||||
|
||||
RectTransform rectTransform = GetComponent<RectTransform>();
|
||||
rectTransform.anchorMin = Vector2.zero;
|
||||
rectTransform.anchorMax = Vector2.one;
|
||||
rectTransform.anchoredPosition = Vector2.zero;
|
||||
rectTransform.sizeDelta = Vector2.zero;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1686306ee1ba46b59e0405d121ad7cfe
|
||||
timeCreated: 1680514816
|
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
public sealed partial class UIComponent : GameFrameworkComponent
|
||||
{
|
||||
[Serializable]
|
||||
private sealed class UIGroup
|
||||
{
|
||||
[SerializeField]
|
||||
private string m_Name = null;
|
||||
|
||||
[SerializeField]
|
||||
private int m_Depth = 0;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
}
|
||||
|
||||
public int Depth
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Depth;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e810c424ef3e4d4d819a04049d8c0cc9
|
||||
timeCreated: 1680511981
|
@@ -0,0 +1,16 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// 界面组辅助器基类。
|
||||
/// </summary>
|
||||
public abstract class UIGroupHelperBase : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// 设置界面组深度。
|
||||
/// </summary>
|
||||
/// <param name="depth">界面组深度。</param>
|
||||
public abstract void SetDepth(int depth);
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 448c98ed06ca49c1bf41283abf384005
|
||||
timeCreated: 1680516245
|
7
Assets/TEngine/Runtime/GameFramework/UI/UIManager.cs
Normal file
7
Assets/TEngine/Runtime/GameFramework/UI/UIManager.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace TEngine
|
||||
{
|
||||
public class UIManager
|
||||
{
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5bd4d4995a5241e3b2df04687b757f47
|
||||
timeCreated: 1680511416
|
7
Assets/TEngine/Runtime/GameFramework/UI/UIWindow.cs
Normal file
7
Assets/TEngine/Runtime/GameFramework/UI/UIWindow.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace TEngine
|
||||
{
|
||||
public class UIWindow
|
||||
{
|
||||
|
||||
}
|
||||
}
|
3
Assets/TEngine/Runtime/GameFramework/UI/UIWindow.cs.meta
Normal file
3
Assets/TEngine/Runtime/GameFramework/UI/UIWindow.cs.meta
Normal file
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f7074455af14e94807e155b7cf32dd3
|
||||
timeCreated: 1680514258
|
@@ -0,0 +1,33 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// 界面辅助器基类。
|
||||
/// </summary>
|
||||
public abstract class UIWindowHelperBase : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// 实例化界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAsset">要实例化的界面资源。</param>
|
||||
/// <returns>实例化后的界面。</returns>
|
||||
public abstract object InstantiateUIWindow(object uiWindowAsset);
|
||||
|
||||
/// <summary>
|
||||
/// 创建界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowInstance">界面实例。</param>
|
||||
/// <param name="uiGroup">界面所属的界面组。</param>
|
||||
/// <param name="userData">用户自定义数据。</param>
|
||||
/// <returns>界面。</returns>
|
||||
public abstract UIWindow CreateUIWindow(object uiWindowInstance, IUIGroup uiGroup, object userData);
|
||||
|
||||
/// <summary>
|
||||
/// 释放界面。
|
||||
/// </summary>
|
||||
/// <param name="uiWindowAsset">要释放的界面资源。</param>
|
||||
/// <param name="uiWindowInstance">要释放的界面实例。</param>
|
||||
public abstract void ReleaseUIWindow(object uiWindowAsset, object uiWindowInstance);
|
||||
}
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f4ee8db1fd94cfdb66dc1062084ad30
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
24
Assets/TEngine/Runtime/GameFramework/UI/WindowAttribute.cs
Normal file
24
Assets/TEngine/Runtime/GameFramework/UI/WindowAttribute.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
|
||||
namespace TEngine
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class WindowAttribute : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// 资源实体可寻址路径/路径。
|
||||
/// </summary>
|
||||
public string AssetName;
|
||||
|
||||
/// <summary>
|
||||
/// 全屏窗口标记。
|
||||
/// </summary>
|
||||
public bool FullScreen;
|
||||
|
||||
public WindowAttribute(string assetName, bool fullScreen = false)
|
||||
{
|
||||
AssetName = assetName;
|
||||
FullScreen = fullScreen;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0e40418539074f688c82a8ab107e968e
|
||||
timeCreated: 1680511434
|
Reference in New Issue
Block a user