Страница 1 из 1

Синхронизация очередей анимаций

СообщениеДобавлено: 29 янв 2018, 10:58
Leksi
Помогите, пожалуйста. У меня есть две очереди анимаций. Одна воспроизводится с помощью PlayQueued а вторая с помощью CrossFadeQueued. Но проблема в том, что мне нужно чтобы анимация из второй очереди ждали первую очередь. Я использовала корутины. Но когда происходит задержка с помощью
Синтаксис:
Используется csharp
while (anim1.isPlaying) {
yield return null;
}


То Unity зависает. Как я понимаю, это происходит из-за того что при очереди CrossFadeQueued первая анимация вопроизводится при Play(). А тут когда задержка происходит то уже нет потом анимации с которой делать плавный переход.. Может вы подскажете как сделать так чтобы не зависал

Re: Синхронизация очередей анимаций

СообщениеДобавлено: 29 янв 2018, 11:15
waruiyume
Показывайте код полностью, такая конструкция в корутине, к зависанию не приводит.

Re: Синхронизация очередей анимаций

СообщениеДобавлено: 29 янв 2018, 11:22
Leksi
waruiyume писал(а):Показывайте код полностью, такая конструкция в корутине, к зависанию не приводит.


Синтаксис:
Используется csharp
IEnumerator GestureCoroutine (string clip, List<string> word)
        {
                for (int j = 0; j < word.Count; j++) {
                        animState = anim.PlayQueued (word [j]);
                        animState.speed = 0.4F;
                }
                anim ["Facial_NONE"].layer = 0;
                anim.PlayQueued ("Facial_NONE");

                float time = 0.0F;
                anim1.CrossFadeQueued (clip,0.5f);

                while (anim1.isPlaying) {
                        yield return null;
                }

                flag = true;
                Updating ();
        }
 


string clip - передается название анимации, List<string> word - передается массив букв, который потом воспроизводятся