From 84fba9533cc9a0f1a3400bbc3f9a36cca94a1fbc Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 26 十二月 2025 18:30:16 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/Component/UI/Decorate/Tweens/UIAlphaTween.cs | 383 ++++++++++++++++++++++++++++--------------------------
1 files changed, 199 insertions(+), 184 deletions(-)
diff --git a/Main/Component/UI/Decorate/Tweens/UIAlphaTween.cs b/Main/Component/UI/Decorate/Tweens/UIAlphaTween.cs
index 52a0236..48d2ba6 100644
--- a/Main/Component/UI/Decorate/Tweens/UIAlphaTween.cs
+++ b/Main/Component/UI/Decorate/Tweens/UIAlphaTween.cs
@@ -7,222 +7,237 @@
using UnityEngine.UI;
using System;
-
- [RequireComponent(typeof(CanvasGroup))]
- public class UIAlphaTween : MonoBehaviour
+
+[RequireComponent(typeof(CanvasGroup))]
+public class UIAlphaTween : MonoBehaviour
+{
+ public TweenCurve curve;
+ [Range(0, 1)]
+ public float from;
+ [Range(0, 1)]
+ public float to;
+ public float delay = 0f;
+ public float duration = 1f;
+ public Trigger trigger = Trigger.Manual;
+ public WrapMode wrapMode;
+ public bool reversal;
+
+ CanvasGroup m_CanvasGroup;
+ public CanvasGroup canvasGroup {
+ get {
+ return m_CanvasGroup ?? (m_CanvasGroup = this.GetComponent<CanvasGroup>());
+ }
+ }
+
+ protected float accumulatedTime;
+ protected float curveLength;
+ protected bool doTween = false;
+
+ Action onPlayEndCallBack;
+
+ public void SetStartState()
{
- public TweenCurve curve;
- [Range(0, 1)]
- public float from;
- [Range(0, 1)]
- public float to;
- public float delay = 0f;
- public float duration = 1f;
- public Trigger trigger = Trigger.Manual;
- public WrapMode wrapMode;
- public bool reversal;
+ canvasGroup.alpha = from;
+ }
- CanvasGroup m_CanvasGroup;
- public CanvasGroup canvasGroup {
- get {
- return m_CanvasGroup ?? (m_CanvasGroup = this.GetComponent<CanvasGroup>());
- }
- }
+ public void SetEndState()
+ {
+ canvasGroup.alpha = to;
+ }
- protected float accumulatedTime;
- protected float curveLength;
- protected bool doTween = false;
-
- Action onPlayEndCallBack;
-
- public void SetStartState()
+ public void Play()
+ {
+ onPlayEndCallBack = null;
+ reversal = false;
+ StopAllCoroutines();
+ if (this.gameObject.activeInHierarchy)
{
- canvasGroup.alpha = from;
- }
-
- public void SetEndState()
- {
- canvasGroup.alpha = to;
- }
-
- public void Play()
- {
- onPlayEndCallBack = null;
- reversal = false;
- StopAllCoroutines();
- if (this.gameObject.activeInHierarchy)
- {
- SetStartState();
- StartCoroutine("Co_StartTween");
- }
- }
-
- public void Play(bool _reversal)
- {
- onPlayEndCallBack = null;
- reversal = _reversal;
- StopAllCoroutines();
- if (this.gameObject.activeInHierarchy)
- {
- if (_reversal)
- {
- SetEndState();
- }
- else
- {
- SetStartState();
- }
-
- StartCoroutine("Co_StartTween");
- }
- }
-
- public void Play(Action _callBack)
- {
- onPlayEndCallBack = _callBack;
- reversal = false;
- StopAllCoroutines();
- if (this.gameObject.activeInHierarchy)
- {
- SetStartState();
- StartCoroutine("Co_StartTween");
- }
- }
-
- public void Stop()
- {
- doTween = false;
- accumulatedTime = 0f;
- StopAllCoroutines();
SetStartState();
+ StartCoroutine("Co_StartTween");
}
+ }
-
- void Start()
+ public void Play(bool _reversal)
+ {
+ onPlayEndCallBack = null;
+ reversal = _reversal;
+ StopAllCoroutines();
+ if (this.gameObject.activeInHierarchy)
{
- if (trigger == Trigger.Start)
+ if (_reversal)
+ {
+ SetEndState();
+ }
+ else
{
SetStartState();
- StartCoroutine("Co_StartTween");
- }
- }
-
- protected virtual void OnEnable()
- {
- if (trigger == Trigger.Enable)
- {
- SetStartState();
- StartCoroutine("Co_StartTween");
- }
- }
-
- protected virtual void OnDisable()
- {
- doTween = false;
- accumulatedTime = 0f;
- StopAllCoroutines();
- }
-
- void LateUpdate()
- {
- if (doTween && duration > 0.001f)
- {
- accumulatedTime += Time.deltaTime;
- UpdateAlpha();
- }
- }
-
- IEnumerator Co_StartTween()
- {
- if (delay < 0f)
- {
- Debug.LogError("Delaytime should not be less than zero!");
- yield break;
- }
- if (duration < 0.001f)
- {
- Debug.LogError("Duration should not be less than zero!");
- yield break;
}
- if (curve.keys.Length < 2)
- {
- Debug.LogError("涓嶆纭殑鏇茬嚎!");
- yield break;
- }
-
- doTween = false;
- OnPrepare();
- yield return new WaitForSeconds(delay);
- curveLength = curve.keys[curve.keys.Length - 1].time - curve.keys[0].time;
- doTween = true;
- accumulatedTime = 0f;
+ StartCoroutine("Co_StartTween");
}
+ }
- protected void UpdateAlpha()
+ public void Play(Action _callBack)
+ {
+ onPlayEndCallBack = _callBack;
+ reversal = false;
+ StopAllCoroutines();
+ if (this.gameObject.activeInHierarchy)
{
- float t = 0f;
- switch (wrapMode)
- {
- case WrapMode.Once:
- t = (accumulatedTime / duration) * curveLength;
- break;
- case WrapMode.Loop:
- t = Mathf.Repeat((accumulatedTime / duration) * curveLength, 1);
- break;
- case WrapMode.PingPong:
- t = Mathf.PingPong((accumulatedTime / duration) * curveLength, 1);
- break;
- }
-
- var value = curve.Evaluate(reversal ? curveLength - t : t);
- canvasGroup.alpha = Mathf.LerpUnclamped(from, to, value);
-
- switch (wrapMode)
- {
- case WrapMode.Once:
- if (t > curveLength && doTween)
- {
- OnOnceEnd();
- doTween = false;
- }
- break;
- }
+ SetStartState();
+ StartCoroutine("Co_StartTween");
}
+ }
- protected virtual void OnPrepare()
+ public void Stop()
+ {
+ doTween = false;
+ accumulatedTime = 0f;
+ StopAllCoroutines();
+ SetStartState();
+ }
+
+
+ void Start()
+ {
+ if (trigger == Trigger.Start)
{
-
+ SetStartState();
+ StartCoroutine("Co_StartTween");
}
+ }
- protected virtual void OnOnceEnd()
+ protected virtual void OnEnable()
+ {
+ if (trigger == Trigger.Enable)
{
- if (onPlayEndCallBack != null)
- {
- onPlayEndCallBack();
- onPlayEndCallBack = null;
- }
+ SetStartState();
+ StartCoroutine("Co_StartTween");
}
+ }
- protected virtual void UpdateVector3()
+ protected virtual void OnDisable()
+ {
+ doTween = false;
+ accumulatedTime = 0f;
+ StopAllCoroutines();
+ }
+
+ void LateUpdate()
+ {
+ if (doTween && duration > 0.001f)
{
-
+ accumulatedTime += Time.deltaTime;
+ UpdateAlpha();
}
+ }
- public enum Trigger
+ IEnumerator Co_StartTween()
+ {
+ if (delay < 0f)
{
- Manual,
- Start,
- Enable,
+ Debug.LogError("Delaytime should not be less than zero!");
+ yield break;
+ }
+ if (duration < 0.001f)
+ {
+ Debug.LogError("Duration should not be less than zero!");
+ yield break;
}
- public enum WrapMode
+ if (curve.keys.Length < 2)
{
- Once,
- Loop,
- PingPong,
+ Debug.LogError("涓嶆纭殑鏇茬嚎!");
+ yield break;
}
+
+ doTween = false;
+ OnPrepare();
+ yield return new WaitForSeconds(delay);
+ curveLength = curve.keys[curve.keys.Length - 1].time - curve.keys[0].time;
+ doTween = true;
+ accumulatedTime = 0f;
+ }
+
+ protected void UpdateAlpha()
+ {
+ float t = 0f;
+ switch (wrapMode)
+ {
+ case WrapMode.Once:
+ t = (accumulatedTime / duration) * curveLength;
+ break;
+ case WrapMode.Loop:
+ t = Mathf.Repeat((accumulatedTime / duration) * curveLength, 1);
+ break;
+ case WrapMode.PingPong:
+ t = Mathf.PingPong((accumulatedTime / duration) * curveLength, 1);
+ break;
+ case WrapMode.PingPongOnce:
+ t = Mathf.PingPong((accumulatedTime / (duration/2)) * curveLength, 1);
+ break;
+ }
+
+ var value = curve.Evaluate(reversal ? curveLength - t : t);
+ canvasGroup.alpha = Mathf.LerpUnclamped(from, to, value);
+
+ switch (wrapMode)
+ {
+ case WrapMode.Once:
+ case WrapMode.PingPongOnce:
+ if (accumulatedTime > duration && doTween)
+ {
+ OnOnceEnd();
+ doTween = false;
+ }
+ break;
+ }
+ }
+
+ protected virtual void OnPrepare()
+ {
}
+ protected virtual void OnOnceEnd()
+ {
+ if (wrapMode == WrapMode.PingPongOnce)
+ {
+ SetStartState();
+ }
+ else
+ {
+ canvasGroup.alpha = reversal ? from : to;
+ }
+
+
+ if (onPlayEndCallBack != null)
+ {
+ onPlayEndCallBack();
+ onPlayEndCallBack = null;
+ }
+ }
+
+ protected virtual void UpdateVector3()
+ {
+
+ }
+
+ public enum Trigger
+ {
+ Manual,
+ Start,
+ Enable,
+ }
+
+ public enum WrapMode
+ {
+ Once,
+ Loop,
+ PingPong,
+ PingPongOnce,
+ }
+
+}
+
--
Gitblit v1.8.0