как повернуть игрока через rigidbody чтобы transform.rotation тоже изменился

такая проблема сделал движение через rigidbory.AddForce, затем добавил поворот через Rigidbody.AddTorque, но при повороте и нажатие на W я иду в бок. есть подозрение что это из за того что rotation не меняется, но могу ошибаться в чём проблема

private float speed = 15.0f;
private float sprintEnergy = 100.0f;
private float speedVasteEnergy = 10.0f;
private float speedRecoveryEnergy = 5.0f;

[SerializeField] float sensivity = 3.0f;

private Rigidbody rb;

private void FixedUpdate()
{
    if (Input.GetKey(KeyCode.W))
    {
        rb.AddForce(Vector3.forward * speed);
    }
    else if (Input.GetKey(KeyCode.S))
    {
        rb.AddForce(Vector3.back * speed);
    }
    else if (Input.GetKey(KeyCode.A))
    {
        rb.AddForce(Vector3.left * speed);
    }
    else if(Input.GetKey(KeyCode.D))
    {
        rb.AddForce(Vector3.right * speed);
    }

    float mouseY = Input.GetAxis("Mouse X") * sensivity;
    rb.AddTorque(transform.up * mouseY);
}

private void Update()
{
    if (Input.GetKey(KeyCode.LeftShift))
    {
        speed = 25.0f;
        sprintEnergy -= speedVasteEnergy * Time.deltaTime;
    }
    else
    {
        sprintEnergy += speedRecoveryEnergy * Time.deltaTime;
    }
    if (Input.GetKeyUp(KeyCode.LeftShift))
    {
        speed = 10.0f;
    }
}

private void Start()
{
    rb = GetComponent<Rigidbody>();
}

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