Сделать механический переход после задержки в Unity3D (режим 2D)

Я использую Unity Animator для анимации своего персонажа, я хочу, чтобы анимация запускалась только в том случае, если она длится достаточно долго.

Например: иногда, если мой персонаж падает на землю, и на пути есть что-то незначительное, это заставляет моего персонажа подниматься на кадр или два, но мой параметр onGround моего аниматор по-прежнему обнаруживает изменение и заставляет моего персонажа анимировать анимацию Полета.

Поэтому в этом случае я хочу, чтобы моя анимация запускалась только после небольшой задержки, например, 0,1 секунды, и только если параметр onGround по-прежнему равен false, чтобы избежать этих небольших сбоев.

Есть ли простой способ сделать это? Или я должен манипулировать им из сценария? Если да, то как?


person Ferenc Dajka    schedule 21.07.2015    source источник


Ответы (2)


Как вы выполняете свой переход в состояние полета, логическое значение? Если это так, вы можете попробовать плавающий диапазон и смешать анимацию сразу после некоторой точки вашего диапазона, например 0,5F.

Я не могу открыть единство прямо сейчас, но я думаю, что даже если можно использовать просто смешивать деревья Конфигурация — это лучший способ иметь надежное управление с помощью сценариев.

ps: на всякий случай, если вы пытаетесь создать конечный автомат перехода, это обсуждается во многих темах и не так тривиально, как кажется

person Frohlich    schedule 21.07.2015
comment
Да, я использовал логическое значение, но вы дали мне хорошую идею. К сожалению, я не могу использовать смешанные деревья, так как анимация содержит разные клипы (кстати, это 2D-анимация). Но теперь я использую переменную с плавающей запятой, как вы предложили. - person Ferenc Dajka; 22.07.2015

В качестве решения я использую переменную с плавающей запятой с именем offGroundTime. Я устанавливаю значение в каждом тике, увеличиваю его на Time.deltaTime, если моя переменная onGround ложна, и устанавливаю ее на 0, если она верна. Если offGroundTime больше 0,2, я включаю анимацию полета, если меньше — включаю анимацию бездействия.

person Ferenc Dajka    schedule 22.07.2015