Get*_*awn 5 c# unity-game-engine
我有这个方法可以向前/向后和向左/向右平移相机。我不知道为什么,但是是什么导致相机在靠近地形放大时移动得很好,但在缩小时移动得非常慢?
这是我平移相机的方式:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我缩放的方式:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
无论我是放大还是缩小,我都可以做些什么来以相同的速度平移相机?
计算您的缩放系数 - 该数字可以是代表您的缩放的任何数字(例如,它可以是从您的相机到视图中心的物体的距离)
当您计算 CameraPan 时,使用此缩放系数乘以 Translate 参数(例如 - 如果您的缩放系数是距离,则当您缩小 = 距离更远时,您将平移更多)