Files
2026-03-04 09:37:33 +08:00

62 lines
2.0 KiB
C#

using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
using UnityEngine;
namespace DG.Tweening
{
public static class DOTweenModuleSprite
{
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SpriteRenderer target, Color endValue, float duration)
{
TweenerCore<Color, Color, ColorOptions> tweenerCore = DOTween.To(() => target.color, delegate(Color x)
{
target.color = x;
}, endValue, duration);
tweenerCore.SetTarget(target);
return tweenerCore;
}
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SpriteRenderer target, float endValue, float duration)
{
TweenerCore<Color, Color, ColorOptions> tweenerCore = DOTween.ToAlpha(() => target.color, delegate(Color x)
{
target.color = x;
}, endValue, duration);
tweenerCore.SetTarget(target);
return tweenerCore;
}
public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
{
Sequence sequence = DOTween.Sequence();
GradientColorKey[] colorKeys = gradient.colorKeys;
int num = colorKeys.Length;
for (int i = 0; i < num; i++)
{
GradientColorKey gradientColorKey = colorKeys[i];
if (i == 0 && gradientColorKey.time <= 0f)
{
target.color = gradientColorKey.color;
continue;
}
float duration2 = ((i == num - 1) ? (duration - sequence.Duration(includeLoops: false)) : (duration * ((i == 0) ? gradientColorKey.time : (gradientColorKey.time - colorKeys[i - 1].time))));
sequence.Append(target.DOColor(gradientColorKey.color, duration2).SetEase(Ease.Linear));
}
sequence.SetTarget(target);
return sequence;
}
public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
{
endValue -= target.color;
Color to = new Color(0f, 0f, 0f, 0f);
return DOTween.To(() => to, delegate(Color x)
{
Color color = x - to;
to = x;
target.color += color;
}, endValue, duration).Blendable().SetTarget(target);
}
}
}