198 lines
8.0 KiB
C#
198 lines
8.0 KiB
C#
|
|
#if ENABLE_GAME_FRAME_X_DO_TWEEN
|
||
|
|
using System;
|
||
|
|
using DG.Tweening;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
namespace GameFrameX.Runtime
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// Do Tween 帮助类
|
||
|
|
/// </summary>
|
||
|
|
[UnityEngine.Scripting.Preserve]
|
||
|
|
public static class DoTweenHelper
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// 关闭对象上的全部动画
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="gameObject">物体对象</param>
|
||
|
|
/// <param name="complete">是否直接完成动画</param>
|
||
|
|
public static void Kill(GameObject gameObject, bool complete = false)
|
||
|
|
{
|
||
|
|
DOTween.Kill(gameObject, complete);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 从浮点值到另一个值
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(float startValue, float endValue, float time, Action<float> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 从整形值到另一个值
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(int startValue, int endValue, float time, Action<int> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 从无符号整形值到另一个值
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(uint startValue, uint endValue, float time, Action<uint> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 从长整形值到另一个值
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(long startValue, long endValue, float time, Action<long> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 从无符号长整形值到另一个值
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(ulong startValue, ulong endValue, float time, Action<ulong> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <param name="complete">完成回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(float startValue, float endValue, float time, Action<float> update, Action complete)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time).OnComplete(() => { complete?.Invoke(); });
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector3 startValue, Vector3 endValue, float time, Action<Vector3> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <param name="complete">完成回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector3 startValue, Vector3 endValue, float time, Action<Vector3> update, Action complete)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time).OnComplete(() => { complete?.Invoke(); });
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector3Int startValue, Vector3Int endValue, float time, Action<Vector3Int> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(new Vector3Int((int)m.x, (int)m.y, (int)m.z)); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector2 startValue, Vector2 endValue, float time, Action<Vector2> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <param name="complete">完成回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector2 startValue, Vector2 endValue, float time, Action<Vector2> update, Action complete)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(m); }, endValue, time).OnComplete(() => { complete?.Invoke(); });
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector2Int startValue, Vector2Int endValue, float time, Action<Vector2Int> update)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(new Vector2Int((int)m.x, (int)m.y)); }, endValue, time);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
///
|
||
|
|
/// </summary>
|
||
|
|
/// <param name="startValue">开始值</param>
|
||
|
|
/// <param name="endValue">结束值</param>
|
||
|
|
/// <param name="time">持续时长</param>
|
||
|
|
/// <param name="update">更新回调</param>
|
||
|
|
/// <param name="complete">完成回调</param>
|
||
|
|
/// <returns></returns>
|
||
|
|
public static Tweener To(Vector2Int startValue, Vector2Int endValue, float time, Action<Vector2Int> update, Action complete)
|
||
|
|
{
|
||
|
|
return DOTween.To(() => startValue, (m) => { update?.Invoke(new Vector2Int((int)m.x, (int)m.y)); }, endValue, time).OnComplete(() => { complete?.Invoke(); });
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endif
|