c# - 放大/缩小时Unity相机平移

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

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

最佳答案

计算你的缩放系数 - 这个数字可以是代表你缩放的任何东西(例如,它可以是你的相机到你 View 中心的物体的距离)

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

关于c# - 放大/缩小时Unity相机平移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30606892/

相关文章:

c# - 替换字符串中的单个字符

c# - 引用装配错误

c# - 如何设置 Xps 文档的页面大小?

c# - Firebase Unity 插件 : How do you persist user session?(自动登录)

android - 套接字:Android到Unity,可能会遭到分配攻击吗?

Unity3D检测屏幕边缘 - 移动时对象闪烁

c# - esp8266与Unity之间的udp连接问题

c# - 泛型继承 c#

c# - SQLite 连接策略

C# BackgroundWorker 和 Com 端口问题