放大/缩小时Unity Camera平移

时间:2015-06-02 21:24:53

标签: c# unity3d

我有这种方法可以向前/向后和向左/向右平移相机。我不知道为什么,但是当在靠近地形的情况下进行放大时相机移动得很好但缩小时移动得非常慢?

以下是我如何平移相机:

void CameraPan(){
    if(Input.GetMouseButton(2)){
        transform.rotation = transform.rotation;
        transform.Translate(Vector3.right * -Input.GetAxis("Mouse X") * 20f, Space.World);
        transform.Translate(Vector3.forward * -Input.GetAxis("Mouse Y") * 20f, Space.World);
    }
}

以下是我缩放的方式:

void CameraZoom(){
    float scroll = Input.GetAxis("Mouse ScrollWheel");
    if(scroll < 0){
        transform.Translate(0, 0, scroll * scrollSpeed);
    }else if(scroll > 0){
        transform.Translate(0, 0, scroll * scrollSpeed);
    }
}

无论放大还是放大,我都能以相同的速度平移相机?

1 个答案:

答案 0 :(得分:0)

计算缩放系数 - 此数字可以是代表缩放的任何数字(例如,它可以是相机与视图中心对象的距离)

在计算CameraPan时使用此缩放系数乘以Translate参数(例如 - 如果您的缩放系数是距离,则缩小时您将平移更多=距离更远)