Задать вопрос
@piffo

Задержка проигрывания анимаций Unity?

Имеется объект с тремя анимациями: покой, бег, прыжок.
У персонажа в ногах есть коллайдер, который проверяет, стоит персонаж на земле или нет. Если персонаж не стоит на земле, воспроизводится анимация прыжка. Здесь всё работает замечательно.
Покой воспроизводится всегда, когда не воспроизводятся другие анимации. Это основная анимация.
Бег воспроизводится, когда значение переменной Speed становится больше 0.01, покой, когда меньше 0.01.
Скрипт
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PlayerAnim : MonoBehaviour
{
    Rigidbody2D rb;
    Animator anim;
 
    public float maxSpeed = 10f;
    bool isGround;
    bool isFacingRight = true;
 
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
    }
 
    void Update()
    {
        anim.SetBool("jump", true);
    }
 
    void FixedUpdate()
    {
        float move = Input.GetAxis("Horizontal");
        anim.SetFloat("Speed", Mathf.Abs(move));
        rb.velocity = new Vector2(move * maxSpeed, rb.velocity.y);
        if (move > 0 && !isFacingRight || move < 0 && isFacingRight)
                Flip();
        anim.SetBool("jump", isGround);
    }
 
    void OnTriggerStay2D(Collider2D col)
    {
        if (col.tag == "ground")
        {
            isGround = true;
        }
    }
 
    void OnTriggerExit2D(Collider2D col)
    {
        if (col.tag == "ground")
        {
            isGround = false;
        }
    }
 
    void Flip()
    {
        isFacingRight = !isFacingRight;
        transform.Rotate(0, 180, 0);
    }
}

Полагался на эту статью.
Но есть проблема. Переход из анимации покоя к бегу и обратно происходит не сразу, а буквально через 1 секунду. Даже когда персонаж уже стоит, анимация бега проигрывается ещё немного. С чем это может быть связано?
5f954af7c02ba230041041.jpeg
5f954b11219a0937383166.jpeg
  • Вопрос задан
  • 1938 просмотров
Подписаться 1 Средний 5 комментариев
Решения вопроса 1
DanielMcRon
@DanielMcRon
C# && Unity
Отключите Exit Time в переходах между анимациями
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы