脊椎动画的补间颜色叠加

时间:2019-05-14 15:50:36

标签: unity3d spine

我使用Unity3D和从Spine导入的角色动画。我想在这些字符上添加颜色覆盖。例如,我有一个字符,我想使其成为“阴影”字符,因此我可以通过以下方式在其上添加黑色:

GetComponent<SkeletonAnimation>().Skeleton.color = new Color(0f,0f,0f);

不过,我希望在常规颜色和新颜色之间进行补间。但是,不幸的是,我无法使用DOTween的DOColor方法来做到这一点。我尝试

GetComponent<SkeletonAnimation>().Skeleton.DOColor(Color.Black,1);

但是骨架的DOColor方法不存在。那么,遵循该方法的方式是什么?

1 个答案:

答案 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);   
    } 


}