C# 放大/缩小时的Unity相机平移
我有一种方法,可以前后左右平移相机。我不知道为什么,但是什么原因导致相机在靠近地形时移动得很好,而在缩小时移动得很慢 以下是我如何摇摄相机:C# 放大/缩小时的Unity相机平移,c#,unity3d,C#,Unity3d,我有一种方法,可以前后左右平移相机。我不知道为什么,但是什么原因导致相机在靠近地形时移动得很好,而在缩小时移动得很慢 以下是我如何摇摄相机: void CameraPan(){ if(Input.GetMouseButton(2)){ transform.rotation = transform.rotation; transform.Translate(Vector3.right * -Input.GetAxis("Mouse X") * 20f, Sp
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);
}
}
void CameraZoom(){
float scroll=Input.GetAxis(“鼠标滚轮”);
如果(滚动<0){
transform.Translate(0,0,滚动*滚动速度);
}否则如果(滚动>0){
transform.Translate(0,0,滚动*滚动速度);
}
}
无论放大还是缩小,如何以相同的速度平移相机?计算缩放因子-此数字可以是表示缩放的任何数字(例如,它可以是相机到视图中心对象的距离)
当您计算CameraPan时,使用此缩放因子乘以Translate参数(例如,如果您的缩放因子是距离,则当您缩小=在更大的距离时,您将平移更多),因为相机离目标越远,横向移动(如平移)会导致较少的视觉变化——这就是为什么即使在你行驶数百英里后,太阳似乎也不会在天空中移动。也许你可以通过改变相机的焦距来取而代之?我已经试过了,问题是一切看起来都太奇怪了。