#c# #unity3d
#c# #unity3d
Вопрос:
Я потратил много времени, пытаясь найти какое-либо решение, но все, что я нахожу, похоже, для более старых версий или что-то в этом роде? По сути, я хочу установить AnimationClip.LoopTime из true в false или наоборот из скрипта.
небольшой рисунок инспектора, показывающий AnimationClip.Время цикла
Я хочу, чтобы это позволило объекту завершить текущий цикл анимации. Аниматор GameObjects.ApplyRootMotion=true, чтобы анимация выполнялась в текущем положении объектов.
Если я просто установлю для аниматора значение enabled=false, как это рекомендуется в некоторых сообщениях, анимация, конечно, сразу же останавливается, и это оставляет объект вне позиции.
Я получаю желаемую информацию с помощью myAnimator.GetCurrentAnimatorClipInfo(0)[0].clip.isLooping но это не позволяет мне его установить…
Каким-то образом должно быть возможно просто установить looping=false и избежать необходимости создавать дополнительные сложные переходы или что-то в аниматоре?
Любая помощь / подсказка приветствуется!
Комментарии:
1. Вы пробовали устанавливать его
wrapMode
?2. вы можете просто добавить пустую анимацию с нормальным состоянием и с помощью скрипта воспроизвести ее с помощью GetComponent<Animator>().Play(name);
3. @derHugo Да, почему-то это ничего не делает. Есть довольно много сообщений, которые пытались это сделать и потерпели неудачу с WrapMode… Кажется, что это как-то работало в прошлом, но больше не работает?
4. @Leoverload Извините, это не работает. Для аниматора в GameObject установлено значение ApplyRootMotion=true, поскольку эффект анимации должен быть применен к текущему GameObject. Transform.Position. Если я просто запускаю другую анимацию, новая уже начинается с позиции «смещение».
Ответ №1:
Поместите событие в конец анимации, которое вызовет функцию внутри скрипта. Функция может отключить Animator
или остановить анимацию, в зависимости от ваших потребностей в дальнейшем включении.
Комментарии:
1. Да, я прокручивал это в голове вчера вечером afk и пришел к тому же выводу. Если что-то зависит от кадра, в котором находится анимация (в моем случае возврат в исходное положение), используйте событие и уведомите сценарий кукловода. Это проще писать, понятнее при возврате и, прежде всего, намного чище.