Как исправить баг анимации?

В общем, сделал анимацию прыжка и вроде всё хорошо работает, но когда персонаж прыгает в месте, где очень мало места, то он начинает баговать и анимация начинает повторяться.
Код кнопки прыжка:
public void Jump() {
        if (isGround) {
            rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
            animator.SetTrigger("TakeOf");
        }
    }

Видео
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity
Кто хочет -ищет способ, кто не хочет -ищет причину
Попробуйте проверку для isGround и движение вынести в FixedUpdate().

Кстатити, вместо if-else проще написать так animator.SetBool("Jump", !isGround);

Дальше если не поможет, либо уменьшайте коллайдер игрока, либо придумывайте исключение для данной ситуации, скажем проверку, есть ли куда прыгать - если нет, тогда прыжок не делаем, но включаем/выключает анимицию прыжка. Подозреваю коллайдер физика выталкивает обратно в землю быстрее, чем Unity успевает что-то обработать, и где-то два события, прыжок и приземление, происходят одновременно, ломая логику работы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы