朝相机方向移动但忽略Y轴

时间:2014-05-15 13:59:12

标签: c# unity3d transform

我使用以下代码将摄像机向任何方向移动。它工作正常。

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

我想知道的是,有没有更好的方法来实现这一目标。

1 个答案:

答案 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);  
}