Как можно сделать обрезание стеку CrossFadeQueued?

Программирование на Юнити.

Как можно сделать обрезание стеку CrossFadeQueued?

Сообщение magic3d 03 июн 2009, 09:51

Каким образом можно сделать обрезание накопившемуся стеку анимаций, накопленных CrossFadeQueued?
К примеру:
1. Нажимается клавиша 1 и вызывается анимация 1: animation.CrossFadeQueued("hit_1", 0.1);
2. Пока она воспроизводится, можно нажать 10 раз клавиши 2 и 3.
3. В конце воспроизведения, анимация 1 должна переходить на анимацию ПОСЛЕДНЕЙ нажатой клавиши, а не воспроизводить 10 анимаций 2 и 3.

Можно, конечно, сделать проверку по weight воспроизводимой анимации и если она приближается к концу, делать проверку нажатия клавиш, но это немного гемморно. Может в Юнити есть какая-то мелочь, мной незамеченная?
Аватара пользователя
magic3d
UNIт
 
Сообщения: 75
Зарегистрирован: 16 апр 2009, 11:43
Откуда: Днепр
  • Сайт

Re: Как можно сделать обрезание стеку CrossFadeQueued?

Сообщение magic3d 03 июн 2009, 12:28

Вобщем, решил эту задачу как в мобильной java MIDP - привязка к time и lenght воспроизводимой анимации в Update(), и если новая клавиша нажата в последние 10-20% времени воспроизведения, то тогда CrossFadeQueued. И не забывайте про speed для Queued анимации:
animation[anim + " - Queued Clone"].speed :-h
Аватара пользователя
magic3d
UNIт
 
Сообщения: 75
Зарегистрирован: 16 апр 2009, 11:43
Откуда: Днепр
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15