Не работает анимация в Unity HDRP
делаю игру на Unity, сделал персонажа и скачал к нему анимации. настроив их через аниматор и написав код я понял, что анимация не работает, а точнее работает неправильно. персонаж чуть-чуть бежит с анимацией, а потом просто двигается в разные стороны в зависимости от кнопки.
вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playerController : MonoBehaviour
{
private Animator animator;
private Rigidbody _rigidbody;
public float _playerSpeed;
// Start is called before the first frame update
void Start()
{
animator = GetComponent<Animator>();
_rigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate()
{
float _horizontal = Input.GetAxis("Horizontal");
float _vertical = Input.GetAxis("Vertical");
Vector3 directionVector = new Vector3(_horizontal, 0, _vertical);
Debug.Log("Direction: " + directionVector);
animator.SetFloat("speed", Vector3.ClampMagnitude(directionVector, 1).magnitude);
_rigidbody.velocity = Vector3.ClampMagnitude(directionVector, 1) * _playerSpeed;
Debug.Log("Velocity: " + _rigidbody.velocity);
Debug.Log("Animator speed parameter: " + Vector3.ClampMagnitude(directionVector, 1).magnitude);
}
}
Ответы (1 шт):
Автор решения: Михаил
→ Ссылка
Убедитесь, что у вас в Animation Type стоит Humanoid и в Root Motion Node стоит Root Transform.
+ Попробуйте нормализовать ваш directionVector:
Vector3 directionVector = new Vector3(_horizontal, 0, _vertical).normalized;
