旋转球向左或向右而不是滚动

本文关键字:滚动 旋转 | 更新日期: 2023-09-27 18:07:28

我正在尝试学习Unity3D,我正在使用这个教程来开始。

在我的PlayerController下面的"球"滚动的方向,按箭头键。但我的问题是:当我按左或右箭头时,我不想让它朝这个方向移动,而是朝这个方向转动。

在上下箭头键上,球向前/向后移动,在左/右箭头键上,球向左/向右旋转。

public class PlayerController : MonoBehaviour {
    public float speed;
    private Rigidbody rb;
    void Start()
    {
        rb = GetComponent<Rigidbody> ();
    }
    void FixedUpdate()
    {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");
        Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
        rb.AddForce (movement * speed);
    }
}

我已经在谷歌上搜索过了,但还没有找到解决方案。

这是我的相机控制器。

public class CameraController : MonoBehaviour {
    public GameObject player;
    private Vector3 offset;
    // Use this for initialization
    void Start () {
        offset = transform.position - player.transform.position;
    }
    // Update is called once per frame
    void LateUpdate () {
        transform.position = player.transform.position + offset;
    }
}

旋转球向左或向右而不是滚动

float delta = Input.GetAxis("Horizontal");
Vector3 axis = Vector3.forward;
rb.AddTorque (axis * speed * delta);

transform.Rotate (axis * speed * delta);

而不是:

 rb.AddForce (movement * speed);

可以使用:

 rb.AddTorque (movement * speed);

这将增加球的角力