我使用以下代码将摄像机向任何方向移动。它工作正常。
public class moveCam : MonoBehaviour {
public float walkSpeed = 0.9f;
void Start () {
}
void Update () {
//Walk In Direction Of Camera
transform.position += transform.forward * walkSpeed * Time.deltaTime;
}
}
我想将相机限制在地平面上的唯一问题(即在Y处的恒定位置),解决此问题的方法是通过重置它来否定计算Y,我正在这样做
void Update () {
//Walk In Direction Of Camera
transform.position += transform.forward * walkSpeed * Time.deltaTime;
transform.position = new Vector3(transform.position.x,0.7f,transform.position.z);
}
我想知道的是,有没有更好的方法来实现这一目标。
答案 0 :(得分:0)
只需在更改后重置Y位置,如下所示
void Update(){
//Code to move in any particular direction
transform.position = new Vector3(transform.position.x,FIXED_Y_VALUE,transform.position.z);
}
或根本不改变Y方向 -
void Update(){
Vector3 newCameraPosition = transform.position + transform.forward * walkSpeed * Time.deltaTime;
transform.position = new Vector3(newCameraPosition.x,transform.position.y,newCameraPosition.z);
}