Unity旋转球向左或向右滚动

时间:2015-08-11 10:47:53

标签: c# unity3d

我正在尝试学习Unity3D,我正在使用此tutorial开始。

在我的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);

    }
}

我在google上搜索过但无法找到解决方案。

更新 这是我的相机控制器。

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;
    }
}

2 个答案:

答案 0 :(得分:0)

而不是:

time.Duration

你可以使用:

 rb.AddForce (movement * speed);

这将为球增加角力。

答案 1 :(得分:0)

float delta = Input.GetAxis("Horizontal");
Vector3 axis = Vector3.forward;

rb.AddTorque (axis * speed * delta);

transform.Rotate (axis * speed * delta);