Unity3d 如何使限制在更改大小/分辨率时保持不变?

Unity3d 如何使限制在更改大小/分辨率时保持不变?,unity3d,camera,Unity3d,Camera,脚本的这一部分限制了x和y方向上的移动,所以相机不能离开游戏场景,它可以在我的2d相机上工作 var pos = transform.position; transform.position = new Vector2( Mathf.Clamp(pos.x, xPanMax, xPanMin), Mathf.Clamp(pos.y, yPanMax, yPanMin)); 当我改变屏幕尺寸时,所有限制都被关闭,我必须重新调整数字,使其不离开游戏边界或能够在整个场景中平移 有没有办法更改此代码

脚本的这一部分限制了x和y方向上的移动,所以相机不能离开游戏场景,它可以在我的2d相机上工作

var pos = transform.position;
transform.position = new Vector2(
Mathf.Clamp(pos.x, xPanMax, xPanMin), 
Mathf.Clamp(pos.y, yPanMax, yPanMin));
当我改变屏幕尺寸时,所有限制都被关闭,我必须重新调整数字,使其不离开游戏边界或能够在整个场景中平移


有没有办法更改此代码,以便即使更改大小/分辨率,限制也保持不变?

有,请使用Cinemachine。它对帧、场景和视图有动态理解

您可以在此处了解更多信息:


Cinemachine是2018.1及更高版本的免费附加软件包。

感谢您的回答,我查看了Cinemachine,但当我添加Cinemachine 2d摄像头时,我的脚本停止工作,直到我再次禁用摄像头。你知道为什么会发生这种情况吗?你必须重写你的脚本才能在vcams上操作,vcams是电影机的一种变体。这不是一个简单的插件,你需要了解一下Cinemachine的工作方式,以及它如何克服Unity相机的(巨大的)局限性。很值得,因为你会发现你可以用Cinemachine做的所有事情都很容易,因为它被设计成一个摄像系统。伊姆绍,这是加入统一的最基本的东西。