Свойство анимации Unity остается отключенным, если вход спам - PullRequest
0 голосов
/ 06 января 2019

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

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

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

Here is a link to see how my animations are set up.

Вот короткий клип о том, как коллайдер перестает работать после простого ввода.

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

Я знаю, как обойти это - я могу получить продолжительность анимации, а затем включить / отключить коллайдер, используя Time.deltaTime, но я хотел бы знать, что я делаю неправильно. В настоящее время мне кажется, что манипулирование свойствами с помощью Animation кажется крайне ненадежным, и, поскольку у меня нет большого опыта в Unity, я, вероятно, не знаю что-то вместо ошибки API. Так может кто-нибудь ответить, что я делаю не так?

1 Ответ

0 голосов
/ 17 января 2019

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

Краткий ответ: если вы используете события, связанные с кадрами анимации, убедитесь, что эти кадры воспроизводятся в вашей игре:)

Длинный ответ: На самом деле я использовал Blend деревья для движения и атаки - как быструю проверку того, как они на самом деле работают. На прошлой неделе я переделывал свою анимацию, осознав, что использование смешанных деревьев для атаки не подходит для моего случая. Именно во время этого процесса я понял, что если я спам-атака, ее анимация не сможет воспроизводить ключевые кадры, которые включают и повторно активируют триггер. Исправить это, конечно, очень просто: установить время выхода и фиксированную продолжительность - при переходе из состояния атаки Кроме того, я также заблокировал атаку на время анимации, чтобы избежать спама. И вуаля! Теперь все работает:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...