У введенного вами выражения Animator.GetCurrentAnimatorStateInfo(0).normalizedTime в Unity сама по себе не может быть больше 1. Оно всегда будет в диапазоне от 0 до 1.
Если у вас бесконечный цикл анимации и вам нужно ограничить количество циклов анимации, вам придется по-другому управлять этим процессом, так как normalizedTime будет сброшено обратно в 0 после каждого цикла анимации.
Можно попробовать следующее:
1. Создайте целочисленную переменную, которая будет учитывать количество проигрываний анимации.
2. Установите слежение за normalizedTime и каждый раз, когда она достигает или приближается к единице, увеличивайте счетчик проигрываний.
3. Установите условие, при котором вы деактивируете цикл анимации, когда достигнуто определенное количество проигрываний.
Пример кода может выглядеть следующим образом:
```cs
public class MyAnimationControl : MonoBehaviour
{
public Animator myAnimator;
private int playCount = 0;
private float lastNormalizedTime = 0f;
void Update()
{
float normalizedTime = myAnimator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1;
if (lastNormalizedTime > normalizedTime)
{
playCount++;
if (playCount > 5) { // число 5 может быть заменено на любое другое количество необходимых проигрываний
myAnimator.enabled = false; // останавливаем анимацию после 5 проигрываний
}
}
lastNormalizedTime = normalizedTime;
}
}
```
Обратите внимание, что этот код должен быть подключен к GameObject с анимацией и что animator должен соответствовать animator на этом объекте.
Это основное решение, для более сложных ситуаций вам может потребоваться более специализированное решение.
Если что-то не работает, рекомендуется добавить инструкции отладки для отслеживания значений и понимания, что происходит в вашем коде.