我使用Unity3D和从Spine导入的角色动画。我想在这些字符上添加颜色覆盖。例如,我有一个字符,我想使其成为“阴影”字符,因此我可以通过以下方式在其上添加黑色:
GetComponent<SkeletonAnimation>().Skeleton.color = new Color(0f,0f,0f);
不过,我希望在常规颜色和新颜色之间进行补间。但是,不幸的是,我无法使用DOTween的DOColor方法来做到这一点。我尝试
GetComponent<SkeletonAnimation>().Skeleton.DOColor(Color.Black,1);
但是骨架的DOColor方法不存在。那么,遵循该方法的方式是什么?
答案 0 :(得分:1)
DoColor,DoMove等是为unity的内置组件编写的快捷方式和扩展方法。 DoTween扩展方法不支持SkeletonAnimation
。您可以像这样补间其color属性:
Color yourColor = Color.white; //GetComponent<SkeletonAnimation>().Skeleton.color
Color targetColor = Color.black;
float duration = 1f;
DOTween.To(() => yourColor, co => { yourColor = co; }, targetColor, duration);
此外,您可以编写自己的扩展名:
public static class MyExtensions{
public static Tweener DOColor(this SkeletonAnimation target,
Color endValue, float duration)
{
DOTween.To(() => target.color,
co => { target.color = co; },
endValue,
duration);
}
}