【发布时间】:2015-04-15 17:56:24
【问题描述】:
我对 Unity 很陌生,我决定制作一个简单的第一人称游戏,但是我的脚本只允许玩家环顾四周,不能移动。我使用过 AddForce,但是我不确定我是否正确地完成了它。
public float walkSpeedForward = 5f;
public float walkSpeedStrafe = 4f;
public float walkSpeedBack = 3f;
public float sprintMultiplier = 2f;
public Camera cam;
public float sensitivityX = 0f;
public float sensitivityY = 0f;
public float minimumX = -360F;
public float maximumX = 360F;
public float minimumY = -60F;
public float maximumY = 60F;
public Rigidbody rb;
float rotationY = 0f;
// Use this for initialization
void Awake () {
rb = GetComponent<Rigidbody>();
rb.freezeRotation = true;
}
// Update is called once per frame
void Update () {
float rotationX = cam.transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX;
rotationY += Input.GetAxis ("Mouse Y") * sensitivityY;
rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
cam.transform.localEulerAngles = (new Vector3(-rotationY, rotationX, 0f));
}
void FixedUpdate()
{
rb.AddForce (new Vector3 (Input.GetAxis ("Horizontal") * walkSpeedStrafe * Time.deltaTime, 0, Input.GetAxis ("Vertical") * walkSpeedForward * Time.deltaTime));
}
【问题讨论】:
标签: c# unity3d game-physics