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