Воспроизведение клипов аниматора один за другим

#c# #unity3d

#c# #unity3d

Вопрос:

У меня есть список клипов от одного аниматора. Как мне воспроизводить каждый из этих клипов один за другим так, чтобы, когда первый заканчивается, начинался второй и так далее..

 public Animator anim;
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(PlayAllAnimations());
    }

    // Update is called once per frame
    void Update()
    {
        
    }


    IEnumerator PlayAllAnimations()
    {
        anim.Play("Anim_1", 0, 0.25f);
        yield return new WaitForSeconds(2);
        anim.Play("Anim_2", 0, 0.25f);
        yield return new WaitForSeconds(2);
        anim.Play("Anim_3", 0, 0.25f);
    }
 

Ответ №1:

Вы должны использовать Animator для этого, потому что это действительно полезно и просто в использовании. Например:Простой аниматор с системой анимации в этом случае я поместил 3 анимации в аниматор и выбрал одну в качестве состояния ожидания, а затем добавил переходы в нужном порядке без условия. Оставление перехода без условия означает, что анимации будут напрямую переходить к другой анимации на основе Has exit time . Вы также можете снять loop флажок с анимации, чтобы она воспроизводилась только один раз, и сразу перейти к другой анимации. Таким образом, вы можете создавать простые циклы между анимациями или все, что вам больше нравится, с условиями и параметрами! Я предлагаю также установить transition duration значение равным нулю, если вы хотите немедленного переключения между анимациями, но это зависит от ваших тестов!

Если вы предпочитаете работать со сценарием, другой способ сделать это — работать с событием анимации, и с его помощью вы можете добавлять события через скрипт без каких-либо проблем.

Для более сложных серий анимаций вы можете использовать Timeline, систему Unity, которая позволяет работать со многими анимациями на временной шкале более кинематографично.

Комментарии:

1. Другой способ сделать это программно — AnimationEvent . Возможно, включите это.

2. Вы также можете использовать временные рамки: docs.unity3d.com/Packages/com.unity.timeline@1.2/manual /…