我正在尝试学习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;
}
}
答案 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);