如何使用Mecanim将非循环动画片段添加(不混合)到循环动画?

时间:2016-02-10 19:13:00

标签: animation unity3d unity5 unity3d-mecanim

我有一个带有Animator和循环动画片段的GameObject 此动画将X坐标从0更改为10并返回。

我需要在第一个动画中添加另一个动画,增加GameObject的比例并同时将其颜色更改为红色。

缩放和颜色更改后,GameObject会保留这些参数并继续根据第一个动画片段移动。

我设法解决的唯一方法是使用couroutine编写自定义脚本:

IEnumerator Animate()
{
    float scaleDelta = 0.2f;
    float colorDelta = 0.02f;
    for (int i = 0; i < 50; i++)
    {
        spriteRenderer.color = new Color(
            spriteRenderer.color.r,
            spriteRenderer.color.g - colorDelta,
            spriteRenderer.color.b - colorDelta);

        transform.localScale = new Vector3(
            transform.localScale.x + scaleDelta,
            transform.localScale.y + scaleDelta,
            transform.localScale.z);

        yield return new WaitForSeconds(0.02f);
    }
}

这适用于线性插值,但需要编写额外的代码并为非线性转换编写更多代码。

如何使用Mecanim获得相同的结果?

示例项目链接:https://drive.google.com/file/d/0B8QGeF3SuAgTU0JWNGd2RnpUU00/view?usp=sharing

0 个答案:

没有答案