我有这种方法可以向前/向后和向左/向右平移相机。我不确定为什么,但是是什么导致相机在靠近地形放大时移动得很好,但在缩小时移动得非常慢?
这是我平移相机的方式:
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/