diff --git a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BasePanel.cs b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BasePanel.cs
index 9dc3f0c..39f1e33 100644
--- a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BasePanel.cs
+++ b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BasePanel.cs
@@ -21,29 +21,34 @@ namespace Stary.Evo.UIFarme
/// 绑定这个面板的实例
///
void Initialize(GameObject panelGo);
-
///
/// 绑定这个面板的实例
///
Task InitializeAsync(GameObject panelGo);
-
///
/// 初始化面板管理器
///
///
void Initialize(IPanelSystem sysytem);
-
///
/// 初始化面板管理器
///
///
Task InitializeAsync(IPanelSystem sysytem);
-
///
/// 虚方法,UI进入时执行的操作,只会执行一次
///
void OnEnter(Action complete = null);
+ ///
+ /// 虚方法,UI暂停时执行的操作,只会执行一次
+ ///
+ void OnPause();
+
+ ///
+ /// 虚方法,UI继续时执行的操作,只会执行一次
+ ///
+ void OnResume();
///
/// 虚方法,UI退出时执行的操作,只会执行一次
@@ -58,7 +63,7 @@ namespace Stary.Evo.UIFarme
///
/// ui信息
///
- Task CreatePanel(string packageName, string panelName);
+ Task CreatePanel(string panelName, string packageName);
///
/// 销毁一个Ui对象
@@ -81,8 +86,6 @@ namespace Stary.Evo.UIFarme
public abstract UITweenType TweenType { get; }
- public abstract UIInstantiateType UIType { get; }
-
///
/// 面板管理器
///
@@ -94,44 +97,31 @@ namespace Stary.Evo.UIFarme
protected Transform panelParent { get; private set; }
- ///
- /// 缓存该面板所有的SpriteRenderer
- ///
- private Dictionary spriteRendererDict;
-
///
/// 缓存该面板所有的Button,Toggle,Slider,InputField,Dropdown,ScroolBar
///
private Dictionary selectableDict;
+
+ protected CanvasGroup canvasGroup { get; private set; }
+
protected GameObject activePanel { get; private set; }
protected BasePanel()
{
- spriteRendererDict = new Dictionary();
selectableDict = new Dictionary();
}
public virtual void Initialize(GameObject panelGo)
{
activePanel = panelGo;
- if (UIType == UIInstantiateType.SpriteNormal)
+ Selectable[] selectables = activePanel.GetComponentsInChildren(true);
+ foreach (Selectable item in selectables)
{
- SpriteRenderer[] spriteRenderers = activePanel.GetComponentsInChildren(true);
- foreach (SpriteRenderer item in spriteRenderers)
- {
- spriteRendererDict[item.name] = item;
- }
- }else if(UIType == UIInstantiateType.UINormal){
- Selectable[] selectables = activePanel.GetComponentsInChildren(true);
- foreach (Selectable item in selectables)
- {
- selectableDict[item.name] = item;
- }
- var canvasGroup = UITool.GetOrAddComponent(activePanel);
- canvasGroup.alpha = 0f;
+ selectableDict[item.name] = item;
}
-
+ canvasGroup = UITool.GetOrAddComponent(activePanel);
+ canvasGroup.alpha = 0f;
}
public virtual Task InitializeAsync(GameObject panelGo)
@@ -155,15 +145,43 @@ namespace Stary.Evo.UIFarme
public virtual void OnEnter(Action complete = null)
{
activePanel.SetActive(true);
+ canvasGroup.blocksRaycasts = true;
+ if (TweenType == UITweenType.None)
+ {
+ canvasGroup.alpha = 1f;
+ }
-
- SetCanvasGroupTween(1f, complete);
+ if (TweenType == UITweenType.Fade)
+ {
+ canvasGroup.DOFade(1f, 2f).OnComplete(() => { complete?.Invoke(); });
+ }
+ else if (TweenType == UITweenType.Yoyo)
+ {
+ canvasGroup.DOFade(1, 2f).SetLoops(2, LoopType.Yoyo).OnComplete(() => { complete?.Invoke(); });
+ }
+ else
+ {
+ canvasGroup.DOFade(1, 2f).SetLoops(-1).OnComplete(() => { complete?.Invoke(); });
+ }
}
+ public virtual void OnPause()
+ {
+ canvasGroup.blocksRaycasts = false;
+ }
+
+ public virtual void OnResume()
+ {
+ canvasGroup.blocksRaycasts = true;
+ }
public virtual void OnExit(float delay = 0f)
{
- SetCanvasGroupTween(0f, () => { activePanel.SetActive(false); });
+ canvasGroup.DOFade(0f, delay).OnComplete(() =>
+ {
+ activePanel.SetActive(false);
+ canvasGroup.blocksRaycasts = false;
+ });
}
public virtual void OnDestroy()
@@ -172,7 +190,7 @@ namespace Stary.Evo.UIFarme
}
- public async Task CreatePanel(string packageName, string panelName)
+ public async Task CreatePanel(string panelName, string packageName)
{
if (panelParent == null)
{
@@ -184,8 +202,7 @@ namespace Stary.Evo.UIFarme
return activePanel.gameObject;
}
#if HotUpdate
-
- AssetHandle handle = null;
+ AssetHandle handle = null;
if (packageName == null)
{
handle = YooAssets.LoadAssetAsync(panelName);
@@ -212,15 +229,14 @@ namespace Stary.Evo.UIFarme
#endif
-
activePanel.name = this.GetType().Name;
- // if (!activePanel.GetComponentInChildren
Yoyo,
}
-
- public enum UIInstantiateType
- {
- ///
- /// 普通面板
- ///
- SpriteNormal,
-
- ///
- /// UI普通面板
- ///
- UINormal
- }
}
}
\ No newline at end of file
diff --git a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BaseRenderPanel.cs b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BaseRenderPanel.cs
new file mode 100644
index 0000000..6349558
--- /dev/null
+++ b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BaseRenderPanel.cs
@@ -0,0 +1,289 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using DG.Tweening;
+using UnityEngine;
+using UnityEngine.UI;
+#if HotUpdate
+using YooAsset;
+#endif
+
+namespace Stary.Evo.UIFarme
+{
+ public interface IBaseRenderPanel : IController
+ {
+ ///
+ /// UI信息
+ ///
+ string UIName { get; set; }
+
+ ///
+ /// 绑定这个面板的实例
+ ///
+ void Initialize(GameObject panelGo);
+
+ ///
+ /// 绑定这个面板的实例
+ ///
+ Task InitializeAsync(GameObject panelGo);
+
+ ///
+ /// 初始化面板管理器
+ ///
+ ///
+ void Initialize(ISpriteRenderSystem sysytem);
+
+ ///
+ /// 初始化面板管理器
+ ///
+ ///
+ Task InitializeAsync(ISpriteRenderSystem sysytem);
+
+ ///
+ /// 虚方法,UI进入时执行的操作,只会执行一次
+ ///
+ void OnEnter(Action complete = null);
+
+
+ ///
+ /// 虚方法,UI退出时执行的操作,只会执行一次
+ ///
+ void OnExit(float delay = 0f);
+
+ void OnDestroy();
+
+
+ ///
+ /// 生成/获取一个UI对象
+ ///
+ /// ui信息
+ ///
+ Task CreatePanel(string packageName, string panelName);
+
+ ///
+ /// 销毁一个Ui对象
+ ///
+ ///
+ void DestoryUI();
+
+ void SetPanelParent(Transform parent);
+ }
+
+ ///
+ ///所有UI面板的父类,包含UI面板的状态信息
+ ///
+ public abstract class BaseRenderPanel : IBaseRenderPanel
+ {
+ ///
+ /// UI信息
+ ///
+ public string UIName { get; set; }
+
+ public abstract UITweenType TweenType { get; }
+
+
+ ///
+ /// 面板管理器
+ ///
+ protected ISpriteRenderSystem PanelSystem { get; private set; }
+
+ ///
+ /// 生成的父物体
+ ///
+ protected Transform panelParent { get; private set; }
+
+
+ ///
+ /// 缓存该面板所有的SpriteRenderer
+ ///
+ private Dictionary spriteRendererDict;
+
+
+ protected GameObject activePanel { get; private set; }
+
+ protected void Awake()
+ {
+ spriteRendererDict = new Dictionary();
+ }
+
+ public virtual void Initialize(GameObject panelGo)
+ {
+ activePanel = panelGo;
+
+ SpriteRenderer[] spriteRenderers = activePanel.GetComponentsInChildren(true);
+ foreach (SpriteRenderer item in spriteRenderers)
+ {
+ spriteRendererDict[item.name] = item;
+ }
+ }
+
+ public virtual Task InitializeAsync(GameObject panelGo)
+ {
+ Initialize(panelGo);
+ return Task.CompletedTask;
+ }
+
+ public virtual void Initialize(ISpriteRenderSystem sysytem)
+ {
+ PanelSystem = sysytem;
+ }
+
+ public virtual Task InitializeAsync(ISpriteRenderSystem sysytem)
+ {
+ Initialize(sysytem);
+ return Task.CompletedTask;
+ }
+
+
+ public virtual void OnEnter(Action complete = null)
+ {
+ activePanel.SetActive(true);
+
+
+ SetCanvasGroupTween(1f, complete);
+ }
+
+
+ public virtual void OnExit(float delay = 0f)
+ {
+ SetCanvasGroupTween(0f, () => { activePanel.SetActive(false); });
+ }
+
+ public virtual void OnDestroy()
+ {
+ DestoryUI();
+ }
+
+
+ public async Task CreatePanel(string packageName, string panelName)
+ {
+ if (panelParent == null)
+ {
+ Debug.LogWarning($"UnityEvo:parent为空,{panelName}自动设置为root节点下,请检查是否正确!!!!!");
+ }
+
+ if (this.activePanel != null)
+ {
+ return activePanel.gameObject;
+ }
+#if HotUpdate
+ AssetHandle handle = null;
+ if (packageName == null)
+ {
+ handle = YooAssets.LoadAssetAsync(panelName);
+ }
+ else
+ {
+ var package = YooAssets.TryGetPackage(packageName);
+ if (package == null)
+ {
+ handle = YooAssets.LoadAssetAsync(panelName);
+ }
+ else
+ {
+ handle = package.LoadAssetAsync(panelName);
+ }
+ }
+
+ await handle.Task;
+
+ activePanel = GameObject.Instantiate(handle.AssetObject as GameObject, panelParent);
+#else
+ GameObject handle = Resources.Load(panelName);
+ activePanel = GameObject.Instantiate(handle, panelParent);
+#endif
+
+ activePanel.name = this.GetType().Name;
+
+ return activePanel;
+ }
+
+ public void DestoryUI()
+ {
+ if (activePanel != null)
+ {
+ GameObject.Destroy(activePanel);
+ PanelSystem.Get_Dic().Remove(this.GetType().Name);
+ }
+ }
+
+ public void SetPanelParent(Transform parent)
+ {
+ panelParent = parent;
+ }
+
+ private void SetCanvasGroup(float alpha)
+ {
+ foreach (var spriteRenderer in spriteRendererDict)
+ {
+ Color c = spriteRenderer.Value.color;
+ c.a = alpha;
+ spriteRenderer.Value.color = c;
+ }
+ }
+
+ private void SetCanvasGroupTween(float alpha, Action complete = null)
+ {
+
+ // 创建一个新的序列
+ Sequence sequence = DOTween.Sequence();
+
+
+ foreach (var spriteRenderer in spriteRendererDict)
+ {
+ if (TweenType == UITweenType.None)
+ {
+ Color c = spriteRenderer.Value.color;
+ c.a = alpha;
+ spriteRenderer.Value.color = c;
+ }
+ else if (TweenType == UITweenType.Fade)
+ {
+ sequence.Join(spriteRenderer.Value.DOFade(alpha, 1f));
+ }
+ else if (TweenType == UITweenType.Yoyo)
+ {
+ sequence.Join(spriteRenderer.Value.DOFade(alpha, 1f)
+ .SetLoops(-1, LoopType.Yoyo));
+ }
+ }
+
+ if (TweenType == UITweenType.None)
+ {
+ complete?.Invoke();
+ }
+ else
+ {
+ sequence.OnComplete(() => complete?.Invoke());
+ }
+ }
+
+ public IArchitecture GetArchitecture()
+ {
+ return PanelSystem.GetArchitecture();
+ }
+
+ public enum UITweenType
+ {
+ ///
+ /// 无动画
+ ///
+ None,
+
+ ///
+ /// 淡入淡出
+ ///
+ Fade,
+
+ ///
+ /// 循环播放
+ ///
+ Loop,
+
+ ///
+ /// 往返播放
+ ///
+ Yoyo,
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BaseRenderPanel.cs.meta b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BaseRenderPanel.cs.meta
new file mode 100644
index 0000000..badf2d6
--- /dev/null
+++ b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Base/BaseRenderPanel.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ba0c8ac52d5440d8a07046b9dd2de8b1
+timeCreated: 1765527320
\ No newline at end of file
diff --git a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/PanelSystem.cs b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/PanelSystem.cs
index 3881a64..3146a6e 100644
--- a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/PanelSystem.cs
+++ b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/PanelSystem.cs
@@ -10,20 +10,19 @@ namespace Stary.Evo.UIFarme
///
/// UI的入栈操作,此操作会显示一个面板
///
- Task PushQueue(Transform parent = null, string packageName = null) where T : IBasePanel, new();
+ Task PushQueue(string panelName=null,Transform parent = null, string packageName = null) where T : IBasePanel, new();
///
/// UI的入栈操作,此操作会显示一个面板
///
- Task PushStack(Transform parent = null, string packageName = null) where T : IBasePanel, new();
+ Task PushStack(string panelName=null,Transform parent = null, string packageName = null) where T : IBasePanel, new();
///
/// 执行面板的出栈操作,此操作会执行面板的OnExit方法
///
- void PopQueue(string panelName = null) where T : IBasePanel, new();
-
- void PopQueue(T t, string panelName = null) where T : IBasePanel, new();
+ void PopQueue(string panelName=null) where T : IBasePanel, new();
+ void PopQueue(T t, string panelName=null) where T : IBasePanel, new();
///
/// 执行面板的出栈操作,此操作会执行面板的OnExit方法
///
@@ -104,38 +103,37 @@ namespace Stary.Evo.UIFarme
///
/// 非热更模式传null
///
- public async Task PushQueue(Transform parent = null, string packageName = null)
+ public async Task PushQueue(string panelName=null, Transform parent = null, string packageName = null)
where T : IBasePanel, new()
{
- var prefabName = typeof(T).Name;
- if (string.IsNullOrEmpty(prefabName))
+ var prefabName = typeof(T).Name;
+ if (string.IsNullOrEmpty(panelName))
{
- prefabName = typeof(T).Name;
+ panelName = typeof(T).Name;
}
-
IBasePanel nextPanel = null;
- if (!dicUI.ContainsKey(prefabName))
+ if (!dicUI.ContainsKey(panelName))
{
nextPanel = new T();
- nextPanel.UIName = prefabName;
+ nextPanel.UIName = panelName;
await nextPanel.InitializeAsync(this);
nextPanel.SetPanelParent(parent);
- GameObject panelGo = await nextPanel.CreatePanel(packageName, prefabName);
+ GameObject panelGo = await nextPanel.CreatePanel($"Prefabs_{prefabName}", packageName);
///生成面板后,进行初始化操作
await nextPanel.InitializeAsync(panelGo);
- dicUI.Add(prefabName, nextPanel);
+ dicUI.Add(panelName, nextPanel);
}
else
{
for (int i = 0; i < queuePanel.Count; i++)
{
- if (queuePanel[i].GetType().Name == prefabName)
+ if (queuePanel[i].GetType().Name == panelName)
{
return;
}
}
- nextPanel = dicUI[prefabName];
+ nextPanel = dicUI[panelName];
}
queuePanel.Add(nextPanel);
@@ -149,51 +147,49 @@ namespace Stary.Evo.UIFarme
///
/// 非热更模式传null
///
- public async Task PushStack(Transform parent = null, string packageName = null) where T : IBasePanel, new()
+ public async Task PushStack(string panelName=null,Transform parent = null, string packageName = null) where T : IBasePanel, new()
{
- var prefabName = typeof(T).Name;
- if (string.IsNullOrEmpty(prefabName))
+ var prefabName = typeof(T).Name;
+ if (string.IsNullOrEmpty(panelName))
{
- prefabName = typeof(T).Name;
+ panelName = typeof(T).Name;
}
IBasePanel nextPanel = null;
- if (!dicUI.ContainsKey(prefabName))
+ if (!dicUI.ContainsKey(panelName))
{
nextPanel = new T();
- nextPanel.UIName = prefabName;
+ nextPanel.UIName = panelName;
await nextPanel.InitializeAsync(this);
nextPanel.SetPanelParent(parent);
- GameObject panelGo = await nextPanel.CreatePanel(packageName, prefabName);
+ GameObject panelGo = await nextPanel.CreatePanel($"Prefabs_{prefabName}", packageName);
///生成面板后,进行初始化操作
await nextPanel.InitializeAsync(panelGo);
- dicUI.Add(prefabName, nextPanel);
+ dicUI.Add(panelName, nextPanel);
}
else
{
foreach (var panel in stackPanel)
{
- if (panel.GetType().Name == prefabName)
+ if (panel.GetType().Name == panelName)
{
return;
}
}
- nextPanel = dicUI[prefabName];
+ nextPanel = dicUI[panelName];
}
-
- if (stackPanel.Count > 0)
+ if(stackPanel.Count > 0)
{
stackPanel.Peek().OnExit();
}
-
stackPanel.Push(nextPanel);
nextPanel.OnEnter();
}
- public void PopQueue(string panelName = null) where T : IBasePanel, new()
+ public void PopQueue(string panelName=null) where T : IBasePanel, new()
{
if (string.IsNullOrEmpty(panelName))
{
diff --git a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/SpriteRendererSystem.cs b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/SpriteRendererSystem.cs
new file mode 100644
index 0000000..eacb258
--- /dev/null
+++ b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/SpriteRendererSystem.cs
@@ -0,0 +1,235 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using UnityEngine;
+
+namespace Stary.Evo.UIFarme
+{
+ public interface ISpriteRenderSystem : ISystem
+ {
+ ///
+ /// UI的入栈操作,此操作会显示一个面板
+ ///
+ Task PushQueue(string packageName, string prefabName, Transform parent = null)
+ where T : IBaseRenderPanel, new();
+
+ ///
+ /// UI的入栈操作,此操作会显示一个面板
+ ///
+ Task PushStack(Transform parent = null, string packageName = null) where T : IBaseRenderPanel, new();
+
+ ///
+ /// 执行面板的出栈操作,此操作会执行面板的OnExit方法
+ ///
+ void PopStack();
+
+ ///
+ /// 执行面板的出栈操作,此操作会执行面板的OnExit方法
+ ///
+ void PopQueue() where T : IBaseRenderPanel, new();
+
+
+ ///
+ /// 面板全部出栈此操作会执行面板的OnExit方法
+ ///
+ void PopAll();
+
+
+ ///
+ /// 返回存储面板实例的字典
+ ///
+ ///
+ Dictionary Get_Dic();
+
+ IBaseRenderPanel GetPanel(string PanelName);
+ }
+
+ ///
+ /// 面板管理器,用栈来存储UI
+ ///
+ public class SpriteRendererSystem : AbstractSystem, ISpriteRenderSystem
+ {
+ ///
+ /// 存储普通UI面板
+ ///
+ private List queuePanel;
+
+ ///
+ /// 存储堆栈UI面板
+ ///
+ private Stack stackPanel;
+
+ ///
+ /// 存储所有UI信息的字典,每个UI信息都会对应一个GameObject
+ ///
+ private Dictionary dicUI;
+
+
+ protected override void OnInit()
+ {
+ stackPanel = new Stack();
+ queuePanel = new List();
+ dicUI = new Dictionary();
+ }
+
+ ///
+ /// UI的入栈操作,此操作会显示一个面板
+ ///
+ ///
+ /// 非热更模式传null
+ ///
+ public async Task PushQueue(string packageName, string prefabName, Transform parent = null)
+ where T : IBaseRenderPanel, new()
+ {
+ IBaseRenderPanel nextPanel = null;
+ if (!dicUI.ContainsKey(prefabName))
+ {
+ nextPanel = new T();
+ nextPanel.UIName = prefabName;
+ await nextPanel.InitializeAsync(this);
+ nextPanel.SetPanelParent(parent);
+ GameObject panelGo = await nextPanel.CreatePanel(packageName, prefabName);
+ ///生成面板后,进行初始化操作
+ await nextPanel.InitializeAsync(panelGo);
+ dicUI.Add(prefabName, nextPanel);
+ }
+ else
+ {
+ for (int i = 0; i < queuePanel.Count; i++)
+ {
+ if (queuePanel[i].GetType().Name == prefabName)
+ {
+ return;
+ }
+ }
+
+ nextPanel = dicUI[prefabName];
+ }
+
+ queuePanel.Add(nextPanel);
+ nextPanel.OnEnter();
+ //TOOD
+ }
+
+
+ ///
+ /// UI的入栈操作,此操作会显示一个面板
+ ///
+ ///
+ /// 非热更模式传null
+ ///
+ public async Task PushStack(Transform parent = null, string packageName = null)
+ where T : IBaseRenderPanel, new()
+ {
+ var prefabName = typeof(T).Name;
+ if (string.IsNullOrEmpty(prefabName))
+ {
+ prefabName = typeof(T).Name;
+ }
+
+ IBaseRenderPanel nextPanel = null;
+ if (!dicUI.ContainsKey(prefabName))
+ {
+ nextPanel = new T();
+ nextPanel.UIName = prefabName;
+ await nextPanel.InitializeAsync(this);
+ nextPanel.SetPanelParent(parent);
+ GameObject panelGo = await nextPanel.CreatePanel(packageName, prefabName);
+ ///生成面板后,进行初始化操作
+ await nextPanel.InitializeAsync(panelGo);
+
+ dicUI.Add(prefabName, nextPanel);
+ }
+ else
+ {
+ foreach (var panel in stackPanel)
+ {
+ if (panel.GetType().Name == prefabName)
+ {
+ return;
+ }
+ }
+
+ nextPanel = dicUI[prefabName];
+ }
+
+ if (stackPanel.Count > 0)
+ {
+ stackPanel.Peek().OnExit();
+ }
+
+ stackPanel.Push(nextPanel);
+ nextPanel.OnEnter();
+ }
+
+
+ public void PopQueue() where T : IBaseRenderPanel, new()
+ {
+ string panelName = typeof(T).Name;
+
+
+ for (int i = 0; i < queuePanel.Count; i++)
+ {
+ if (queuePanel[i].GetType().Name == panelName)
+ {
+ queuePanel[i].OnExit();
+ queuePanel.RemoveAt(i);
+ }
+ }
+ }
+
+ public void PopStack()
+ {
+ if (stackPanel.Count > 0)
+ {
+ stackPanel.Pop().OnExit();
+ }
+
+ if (stackPanel.Count > 0)
+ {
+ stackPanel.Peek().OnEnter();
+ }
+ }
+
+ public void PopAll()
+ {
+ while (stackPanel.Count > 0)
+ stackPanel.Pop().OnExit();
+ foreach (var panel in queuePanel)
+ {
+ panel.OnExit();
+ }
+
+ queuePanel.Clear();
+ }
+
+
+ public Dictionary Get_Dic()
+ {
+ if (dicUI.Count > 0)
+ {
+ return dicUI;
+ }
+
+ return null;
+ }
+
+ public IBaseRenderPanel GetPanel(string PanelName)
+ {
+ if (dicUI.ContainsKey(PanelName))
+ {
+ return dicUI[PanelName];
+ }
+
+ return null;
+ }
+
+ public override void Dispose()
+ {
+ PopAll();
+ stackPanel = null;
+ queuePanel = null;
+ dicUI = null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/SpriteRendererSystem.cs.meta b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/SpriteRendererSystem.cs.meta
new file mode 100644
index 0000000..4b7a807
--- /dev/null
+++ b/Assets/00.StaryEvoTools/Runtime/Tools/PanelSystem/Manager/SpriteRendererSystem.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6c8492e998a14a6f96e96902acbf587a
+timeCreated: 1765527058
\ No newline at end of file
diff --git a/Assets/00.StaryEvoTools/Runtime/VideoSystemPanel/VideoPanel.cs b/Assets/00.StaryEvoTools/Runtime/VideoSystemPanel/VideoPanel.cs
index 6ade6ca..35ceb45 100644
--- a/Assets/00.StaryEvoTools/Runtime/VideoSystemPanel/VideoPanel.cs
+++ b/Assets/00.StaryEvoTools/Runtime/VideoSystemPanel/VideoPanel.cs
@@ -32,7 +32,6 @@ public class VideoPanel : BasePanel
public override UITweenType TweenType => UITweenType.Fade;
- public override UIInstantiateType UIType => UIInstantiateType.UINormal;
public override void Initialize(GameObject panelGo)
{
diff --git a/Assets/00.StaryEvoTools/package.json b/Assets/00.StaryEvoTools/package.json
index ae8d486..539e62f 100644
--- a/Assets/00.StaryEvoTools/package.json
+++ b/Assets/00.StaryEvoTools/package.json
@@ -1,6 +1,6 @@
{
"name": "com.staryevo.tools",
- "version": "1.2.4",
+ "version": "1.2.5",
"displayName": "00.StaryEvo.Tools",
"description": "This is an Framework package(后台服务器版本,端口9527)",
"unity": "2021.3",