почему не запускаются анимации через скрипт

написал скрипт на машину но анимации для поворота не работают в юнити всё настроил как надо

public Animator anim;

void Update()
{
    if (Input.GetKey(KeyCode.A)&&!Input.GetKey(KeyCode.D))//поворот влево
    {
        transform.Rotate(0, -_speed * Time.deltaTime*rotationSpeed, 0);
        anim.SetInteger("param", 0);
    }
    if (Input.GetKeyUp(KeyCode.A))//поворот право с лево
    {
        anim.SetInteger("param", 1);
    }
    if (Input.GetKey(KeyCode.D)&&!Input.GetKey(KeyCode.A))//поворот право
    {
        transform.Rotate(0, _speed * Time.deltaTime*rotationSpeed, 0);
        anim.SetInteger("param", 2);
    }
    if (Input.GetKeyUp(KeyCode.D))//поворот лево с право
    {
        anim.SetInteger("param", 3);
    }
}

private void Start()
{
    anim = GetComponent<Animator>();
}

если надо вот весь скрипт

static float _speed = 0.0f;
[SerializeField] float _maxSpeed = 120.0f;
[SerializeField] float _minAccelerationSpeed = 10.0f;
[SerializeField] float _maxAccelerationSpeed = 15.0f;
[SerializeField] float _minTormozSpeed = 30.0f;
[SerializeField] float _maxTormozSpeed = 70.0f;
[SerializeField] float rotationSpeed;
public Transform[] weels;

public Animator anim;

void Update()
{
    if (Input.GetKey(KeyCode.W) && _speed < _maxSpeed)
    {
        _speed += Random.Range(_minAccelerationSpeed * Time.deltaTime, _maxAccelerationSpeed * Time.deltaTime);
    }
    if (!Input.GetKey(KeyCode.W) && _speed > 0)
    {
        _speed -= Random.Range(_minAccelerationSpeed * Time.deltaTime, _maxAccelerationSpeed * Time.deltaTime);
    }
    _speed = Mathf.Clamp(_speed, 0, 120);

    transform.Translate(0, 0, -_speed*Time.deltaTime);
    if (Input.GetKey(KeyCode.A)&&!Input.GetKey(KeyCode.D))//поворот влево
    {
        transform.Rotate(0, -_speed * Time.deltaTime*rotationSpeed, 0);
        anim.SetInteger("param", 0);
    }
    if (Input.GetKeyUp(KeyCode.A))//поворот право с лево
    {
        anim.SetInteger("param", 1);
    }
    if (Input.GetKey(KeyCode.D)&&!Input.GetKey(KeyCode.A))//поворот право
    {
        transform.Rotate(0, _speed * Time.deltaTime*rotationSpeed, 0);
        anim.SetInteger("param", 2);
    }
    if (Input.GetKeyUp(KeyCode.D))//поворот лево с право
    {
        anim.SetInteger("param", 3);
    }

    if (Input.GetKey(KeyCode.LeftShift) && _speed >0  || Input.GetKey(KeyCode.RightShift) && _speed > 0)
        _speed -= Random.Range(_minTormozSpeed * Time.deltaTime, _maxTormozSpeed * Time.deltaTime);

    weels[0].Rotate(-_speed, 0, 0);
    weels[1].Rotate(-_speed, 0, 0);
    weels[2].Rotate(-_speed, 0, 0);
    weels[3].Rotate(-_speed, 0, 0);
}

private void Start()
{
    anim = GetComponent<Animator>();
}

(поправка, работает только анимация LeftRotate, но работает постоянно и независимо от скрипта)


Ответы (0 шт):