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