0

我有一个带有 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

4

0 回答 0