我在场景中有一个物理摄像机,它呈现一个3D场景。3D场景呈现在顶部UI栏和底部UI栏之间,并已被正确设置为参考分辨率720 x 1280。
因此,问题在于,当分辨率发生变化时,UI将被正确地设置为该特定的解决方案。但是在两个UI部件之间呈现的3D场景并没有正确地在它们之间放置。我附加了两个参考图像,以便更容易理解。
下面给出的图像是基于参考分辨率和三维场景是适当地适合之间的两个UI部分。

下面给出的图像是另一个分辨率,UI相应地调整自己。但是3D场景并不是这样,即相机应该移动以适应UI之间的3D场景。

那么,是否有任何方法,我可以移动相机根据分辨率,以便它适合之间的UI不同的纵横比。
谢谢。
发布于 2020-06-29 13:00:42
首先,尝试查看相机的ViewportRect属性--它使您能够将视图裁剪到一个区域,从而实现您所寻求的效果。
然而,这也有保留“中心屏幕”透视轴的局限性,在某些情况下,这是不必要的。
一个“应该永远工作”的解决方案是呈现给一个RednerTexture -相机调整其屏幕方面的方面的RenderTexture,如果你显示你的纹理在RawImage上,你应该得到欺骗的结果。然而,这有一定的性能成本(内存读出不是移动设备上最快的)。
如果成本是不可接受的,它可以建立自定义的相机投影矩阵,这将尊重您想要的视口直角,也允许任意透视,但它并不是微不足道的。这里有一些更多的信息
https://docs.unity3d.com/ScriptReference/Camera-projectionMatrix.html
https://stackoverflow.com/questions/62597755
复制相似问题