Я делаю 2d игру в Unity, а для главного героя я создал 4 анимации; вверх, вниз, влево и вправо. Чтобы сделать это, я только что сделал анимацию и запускать их с линией кода:Как я могу сделать анимацию в Unity только один раз, а затем переключиться на другую анимацию
anim.SetBool ("movingUp", true);
, которые будут нужны при нажатии кнопки вверх. Этот тип анимации легко справиться, потому что он не основан на времени, но как долго игрок хочет, чтобы персонаж находился в этом состоянии. Теперь я пытаюсь добавить анимацию, которая запускается, когда символ сталкивается с другим игровым объектом. Я не уверен, как сделать так, чтобы анимация играла всего один раз, а затем возвращалась к другой анимации. Есть ли способ запустить анимацию только один раз в Unity?
Подумайте о своих анимациях как состояниях и вашем контроллере анимации в качестве конечного автомата. Я бы сделал простую анимацию, и это будет запись. Попросите другие анимации сработать, а затем вернуться к режиму по умолчанию (в режиме ожидания) на основе логики. Вы можете установить свойства для каждой анимации, щелкнув по ней. Они появляются в инспекторе – mtrueblood
@mtrueblood персонаж никогда не будет в состоянии ожидания, и это действительно не отвечает на мой вопрос. Я уже понимаю, как работать с анимациями. У меня есть они, я просто не сейчас, как сделать анимацию только один раз. Вы не можете логически прокладывать путь через это с помощью состояний, потому что персонаж находится в состоянии, когда он попадает в игровой объект в течение секунды секунды, недостаточно долго, чтобы воспроизводить анимацию, поэтому как вы играете анимацию до тех пор, пока она не будет полной, это то, что я прошу – dmkanerer
Вы должны предоставить более подробную информацию, мой комментарий был предназначен только как общий комментарий, так как я не был уверен, что именно ваша проблема была. Вы можете установить фиксированную продолжительность анимации и отключить цикл с панели аниматора. – mtrueblood