Как добавить (не смешивать) клип без зацикливания анимации в зацикленную анимацию с Mecanim?

У меня есть GameObject с Animator и зацикленный клип анимации.
Эта анимация меняет координату 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 ответов

Другие вопросы по тегам