Вот несколько способов решить проблему с анимацией, которая проигрывается только 1 раз в Unity:
1. Используйте компонент Animator вместо простого проигрывателя анимации[1]. Создайте анимацию в Animator, добавьте ее в ячейку Animation и включите опцию Loop. Это позволит проигрывать анимацию зациклено.
2. Напишите в скрипте функцию для зацикленного проигрывания анимации[1]. Например:
```csharp
void Start() {
thisAnim = GetComponent<Animator>();
}
void Update() {
if (Input.GetButtonDown("Jump")) {
thisAnim.SetTrigger("Jump");
}
}
void PlayJumpAnimation() {
thisAnim.SetTrigger("Jump");
}
```
3. Проверьте настройки анимации в редакторе спрайтов Unity[2]. Убедитесь, что ширина и высота спрайтов анимации установлены корректно. Автоматический режим иногда дает неверные значения.
4. Убедитесь, что pivot (точка привязки) анимации расположен правильно[2]. Если pivot спрайта анимации не в центре, это может вызывать "дерганье" при проигрывании.
5. Если анимация состоит из нескольких спрайтов, проверьте, что они расположены в правильном порядке[3]. Неправильный порядок кадров анимации может приводить к "подергиванию".
6. Попробуйте проигрывать анимацию по нажатию кнопки или триггеру[4]. Вместо автоматического проигрывания анимации по событию, вызывайте ее явно по нажатию кнопки или по срабатыванию триггера.
Надеюсь, эти советы помогут решить проблему с анимацией в Unity. Если ничего не помогает, проверьте версию Unity и обновите ее до последней стабильной. Также можно попробовать создать новый проект и перенести туда анимацию - иногда помогает.
[1]
https://ru.stackoverflow.com/questions/1256427/%D0%90%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D1%80%D0%BE%D0%B8%D0%B3%D1%80%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE-1-%D1%80%D0%B0%D0%B7 [2] http://unity3d.ru/distribution/viewtopic.php?f=105&t=43992
[3]
https://qna.habr.com/q/1053172 [4]
https://www.youtube.com/watch?v=XTfftmCEORc [5]
https://dtf.ru/u/235900-minigames-studio/126097-animaciya-v-unity-dlya-chainikov-problemy-i-resheniya