События анимации Unity3d не запускаются последовательно

У меня есть анимация с событием в среднем ключевом кадре.

Анимация перемещает игровой объект по осям x и y по экрану полукругом.

Когда событие срабатывает, я вызываю анимацию.Stop().

Это останавливает игровой объект в центре экрана, ожидая, пока я проведу пальцем и продолжу анимацию, или проведу пальцем в противоположном направлении и вернусь назад. Я делаю это, устанавливая скорость анимации на -1.

Моя проблема в том, что объект не останавливается каждый раз в одном и том же положении, особенно на реверсе, он всегда немного смещен.

После долгих поисков я попытался установить режим wrapMode на фиксацию навсегда, я убедился, что событие вызывается прямо в ключевом кадре, и я попытался сделать время, с которого оно начинается, когда оно находится в середине, является постоянным числом.


person nmcdonald    schedule 25.05.2013    source источник
comment
Можете ли вы добавить соответствующий код?   -  person DuckMaestro    schedule 26.05.2013
comment
На самом деле с кодом ничего не происходит, я добавил событие через окно анимации единства над средним ключевым кадром и назначил его функции в сценарии поведения, прикрепленном к игровому объекту. В функции, которую я вызываю, animation.Stop(); Анимация длится 2 секунды.   -  person nmcdonald    schedule 26.05.2013


Ответы (1)


Я думаю, что лучше использовать независимую от времени систему анимации вместо устаревшей анимации Unity. Устаревшая анимация сильно зависит от кадров и ведет себя по-разному на разных устройствах (из-за разницы в частоте кадров), даже на одном и том же устройстве она может отличаться из-за текущей производительности вашего устройства. Попробуйте что-нибудь вроде iTween или сделать анимацию или HoTween для управления анимацией.

person onevcat    schedule 04.06.2013