This commit is contained in:
zhangzheng
2025-12-16 19:18:35 +08:00
parent 42161fa127
commit 3f3e6862ec
3 changed files with 45 additions and 47 deletions

View File

@@ -17,6 +17,7 @@ namespace Stary.Evo.UIFarme
/// </summary> /// </summary>
string UIName { get; set; } string UIName { get; set; }
BaseRenderPanel.UITweenType TweenType { get; set; }
/// <summary> /// <summary>
/// 绑定这个面板的实例 /// 绑定这个面板的实例
/// </summary> /// </summary>
@@ -79,7 +80,7 @@ namespace Stary.Evo.UIFarme
/// </summary> /// </summary>
public virtual string UIName { get; set; } public virtual string UIName { get; set; }
//public abstract UITweenType TweenType { get; } public UITweenType TweenType { get; set; }
/// <summary> /// <summary>
@@ -227,16 +228,16 @@ namespace Stary.Evo.UIFarme
foreach (var spriteRenderer in spriteRendererDict) foreach (var spriteRenderer in spriteRendererDict)
{ {
// if (TweenType == UITweenType.None) if (TweenType == UITweenType.None)
// { {
// Color c = spriteRenderer.Value.color; Color c = spriteRenderer.Value.color;
// c.a = alpha; c.a = alpha;
// spriteRenderer.Value.color = c; spriteRenderer.Value.color = c;
// } }
// else if (TweenType == UITweenType.Fade) else if (TweenType == UITweenType.Fade)
// { {
sequence.Join(spriteRenderer.Value.DOFade(alpha, 1f)); sequence.Join(spriteRenderer.Value.DOFade(alpha, 1f));
// } }
// else if (TweenType == UITweenType.Yoyo) // else if (TweenType == UITweenType.Yoyo)
// { // {
// sequence.Join(spriteRenderer.Value.DOFade(alpha, 1f) // sequence.Join(spriteRenderer.Value.DOFade(alpha, 1f)
@@ -244,15 +245,16 @@ namespace Stary.Evo.UIFarme
// } // }
} }
// if (TweenType == UITweenType.None) if (TweenType == UITweenType.None)
// { {
// complete?.Invoke(); complete?.Invoke();
// } }
// else else
{ {
sequence.OnComplete(() => complete?.Invoke()); sequence.OnComplete(() => complete?.Invoke());
sequence.Play();
} }
sequence.Play();
} }
public IArchitecture GetArchitecture() public IArchitecture GetArchitecture()
@@ -260,27 +262,17 @@ namespace Stary.Evo.UIFarme
return PanelSystem.GetArchitecture(); return PanelSystem.GetArchitecture();
} }
// public enum UITweenType public enum UITweenType
// { {
// /// <summary> /// <summary>
// /// 无动画 /// 无动画
// /// </summary> /// </summary>
// None, None,
//
// /// <summary> /// <summary>
// /// 淡入淡出 /// 淡入淡出
// /// </summary> /// </summary>
// Fade, Fade,
// }
// /// <summary>
// /// 循环播放
// /// </summary>
// Loop,
//
// /// <summary>
// /// 往返播放
// /// </summary>
// Yoyo,
// }
} }
} }

View File

@@ -10,9 +10,11 @@ namespace Stary.Evo.UIFarme
/// <summary> /// <summary>
/// UI的入栈操作此操作会显示一个面板 /// UI的入栈操作此操作会显示一个面板
/// </summary> /// </summary>
Task PushQueue(string prefabName, string packageName = null, Transform parent = null); Task PushQueue(string prefabName, string packageName = null, Transform parent = null,BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade);
Task PushQueue<T>(string packageName = null, Transform parent = null)
Task PushQueue<T>(string packageName = null, Transform parent = null,BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade)
where T : IBaseRenderPanel, new(); where T : IBaseRenderPanel, new();
Task PushStack(string prefabName, string packageName = null, Transform parent = null); Task PushStack(string prefabName, string packageName = null, Transform parent = null);
@@ -30,9 +32,9 @@ namespace Stary.Evo.UIFarme
/// <summary> /// <summary>
/// 执行面板的出栈操作此操作会执行面板的OnExit方法 /// 执行面板的出栈操作此操作会执行面板的OnExit方法
/// </summary> /// </summary>
void PopQueue(string panelName); void PopQueue(string panelName,BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade);
void PopQueue<T>() where T : IBaseRenderPanel, new(); void PopQueue<T>(BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade) where T : IBaseRenderPanel, new();
/// <summary> /// <summary>
/// 面板全部出栈此操作会执行面板的OnExit方法 /// 面板全部出栈此操作会执行面板的OnExit方法
/// </summary> /// </summary>
@@ -108,7 +110,7 @@ namespace Stary.Evo.UIFarme
/// <param name="parent"></param> /// <param name="parent"></param>
/// <param name="packageName">非热更模式传null</param> /// <param name="packageName">非热更模式传null</param>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
public async Task PushQueue(string prefabName, string packageName = null, Transform parent = null) public async Task PushQueue(string prefabName, string packageName = null, Transform parent = null,BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade)
{ {
IBaseRenderPanel nextPanel = null; IBaseRenderPanel nextPanel = null;
if (!dicUI.ContainsKey(prefabName)) if (!dicUI.ContainsKey(prefabName))
@@ -117,6 +119,7 @@ namespace Stary.Evo.UIFarme
nextPanel.UIName = prefabName; nextPanel.UIName = prefabName;
await nextPanel.InitializeAsync(this); await nextPanel.InitializeAsync(this);
nextPanel.SetPanelParent(parent); nextPanel.SetPanelParent(parent);
nextPanel.TweenType = tweenType;
GameObject panelGo = await nextPanel.CreatePanel(packageName, prefabName); GameObject panelGo = await nextPanel.CreatePanel(packageName, prefabName);
///生成面板后,进行初始化操作 ///生成面板后,进行初始化操作
await nextPanel.InitializeAsync(panelGo); await nextPanel.InitializeAsync(panelGo);
@@ -146,7 +149,7 @@ namespace Stary.Evo.UIFarme
/// <param name="parent"></param> /// <param name="parent"></param>
/// <param name="packageName">非热更模式传null</param> /// <param name="packageName">非热更模式传null</param>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
public async Task PushQueue<T>(string packageName = null, Transform parent = null) public async Task PushQueue<T>(string packageName = null, Transform parent = null,BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade)
where T : IBaseRenderPanel, new() where T : IBaseRenderPanel, new()
{ {
var prefabName = typeof(T).Name; var prefabName = typeof(T).Name;
@@ -157,6 +160,7 @@ namespace Stary.Evo.UIFarme
nextPanel = new T(); nextPanel = new T();
await nextPanel.InitializeAsync(this); await nextPanel.InitializeAsync(this);
nextPanel.SetPanelParent(parent); nextPanel.SetPanelParent(parent);
nextPanel.TweenType = tweenType;
GameObject panelGo = await nextPanel.CreatePanel(packageName, nextPanel.UIName); GameObject panelGo = await nextPanel.CreatePanel(packageName, nextPanel.UIName);
///生成面板后,进行初始化操作 ///生成面板后,进行初始化操作
await nextPanel.InitializeAsync(panelGo); await nextPanel.InitializeAsync(panelGo);
@@ -273,23 +277,25 @@ namespace Stary.Evo.UIFarme
nextPanel.OnEnter(); nextPanel.OnEnter();
} }
public void PopQueue(string panelName) public void PopQueue(string panelName,BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade)
{ {
for (int i = 0; i < queuePanel.Count; i++) for (int i = 0; i < queuePanel.Count; i++)
{ {
if (queuePanel[i].UIName == panelName) if (queuePanel[i].UIName == panelName)
{ {
queuePanel[i].TweenType = tweenType;
queuePanel[i].OnExit(); queuePanel[i].OnExit();
queuePanel.RemoveAt(i); queuePanel.RemoveAt(i);
} }
} }
} }
public void PopQueue<T>() where T : IBaseRenderPanel, new() public void PopQueue<T>(BaseRenderPanel.UITweenType tweenType = BaseRenderPanel.UITweenType.Fade) where T : IBaseRenderPanel, new()
{ {
for (int i = 0; i < queuePanel.Count; i++) for (int i = 0; i < queuePanel.Count; i++)
{ {
if (queuePanel[i].GetType().Name == typeof(T).Name) if (queuePanel[i].GetType().Name == typeof(T).Name)
{ {
queuePanel[i].TweenType = tweenType;
queuePanel[i].OnExit(); queuePanel[i].OnExit();
queuePanel.RemoveAt(i); queuePanel.RemoveAt(i);
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "com.staryevo.tools", "name": "com.staryevo.tools",
"version": "1.2.15", "version": "1.2.16",
"displayName": "00.StaryEvo.Tools", "displayName": "00.StaryEvo.Tools",
"description": "This is an Framework package(后台服务器版本端口9527)", "description": "This is an Framework package(后台服务器版本端口9527)",
"unity": "2021.3", "unity": "2021.3",