Unity 5 воспроизводит 2D-анимацию один раз

79
8

Мне нужно играть в анимацию только один раз.

Что-то вроде этого:

public Animation[] animations;

animations[0].play();

Я просмотрел StackOverflow, все, что я нашел, это:

animation["AnimationName"].wrapMode = WrapMode.Once;
animation.Play("AnimationName");

Но он ничего не делает. Действительно ли этот метод для Unity3D 5? Есть ли новые способы воспроизведения анимации?

спросил(а) 2021-01-19T14:43:51+03:00 9 месяцев, 1 неделя назад
1
Решение
80

У меня есть один способ воспроизведения анимации на мыши.

Для этого открытого контроллера аниматора и добавьте эту отбрасывающую анимацию, и одна будет бездействующей анимацией (это будет начальный этап сбрасывания). Теперь сделайте простую анимацию по умолчанию и добавьте переход из режима ожидания в анимацию.

Добавьте параметр к этому переходу типа "Триггер". Установите этот параметр в состояние перехода.

И добавьте еще один переход от отбрасывания анимации в состояние ожидания.

Таким образом, после завершения полной анимации, она снова появится в режиме ожидания.

Теперь для сценариев:

int dropHash = Animator.StringtoHash("parameterName");

onmouseDown:

animator.SetTrigger(dropHash);

Надеюсь, у вас есть идея. Это может вам помочь. Благодарю.

ответил(а) 2021-01-19T14:43:51+03:00 9 месяцев, 1 неделя назад
46

Вы должны использовать wrapMode. В вашем случае это может быть что-то вроде


foreach(Animation anim in animations) {
anim.wrapMode = WrapMode.Once;
anim.Play();
}

ответил(а) 2021-01-19T14:43:51+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема