using UnityEngine;
|
using UnityEngine.UI;
|
using DG.Tweening;
|
|
/// <summary>
|
/// DOTween 扩展方法,为不同组件提供动画功能
|
/// </summary>
|
public static class DOTweenExtensions
|
{
|
/// <summary>
|
/// 为 CanvasGroup 提供淡入淡出动画
|
/// </summary>
|
/// <param name="target">目标 CanvasGroup</param>
|
/// <param name="endValue">目标透明度值 (0-1)</param>
|
/// <param name="duration">动画持续时间</param>
|
/// <returns>Tweener 实例</returns>
|
public static Tweener DOFade(this CanvasGroup target, float endValue, float duration)
|
{
|
return DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration);
|
}
|
|
/// <summary>
|
/// 为 RectTransform 提供移动动画
|
/// </summary>
|
/// <param name="target">目标 RectTransform</param>
|
/// <param name="endValue">目标位置</param>
|
/// <param name="duration">动画持续时间</param>
|
/// <returns>Tweener 实例</returns>
|
public static Tweener DOAnchorPos(this RectTransform target, Vector2 endValue, float duration)
|
{
|
return DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration);
|
}
|
|
/// <summary>
|
/// 为 Transform 提供缩放动画
|
/// </summary>
|
/// <param name="target">目标 Transform</param>
|
/// <param name="endValue">目标缩放值</param>
|
/// <param name="duration">动画持续时间</param>
|
/// <returns>Tweener 实例</returns>
|
public static Tweener DOScale(this Transform target, Vector3 endValue, float duration)
|
{
|
return DOTween.To(() => target.localScale, x => target.localScale = x, endValue, duration);
|
}
|
}
|