【问题标题】:Unity Camera panning when zoomed in/out放大/缩小时 Unity 相机平移
【发布时间】:2015-08-16 21:12:37
【问题描述】:

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

这是我如何平移相机:

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

无论放大还是缩小,如何以相同的速度平移相机?

【问题讨论】:

  • 随着相机离目标越来越远,横向移动(如平移)会导致视觉变化较小——这就是为什么太阳在天空中似乎没有移动,即使在你行驶了数百英里之后.也许您可以通过更改相机的field of view 来进行缩放?
  • 我试过这样做,问题是一切看起来都太奇怪了。

标签: c# unity3d


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多