使用正交相机时,当游戏时的窗口分辨率比编辑时更“窄”(比如在16:9分辨率下编辑画面内容,而运行时变为16:10),则Unity会在保持相机“画框”高度不变的情况下,缩短相机“画框”的宽度,再将相机“画框”中的内容投射到屏幕,此时场景中左右两边的画面内容会丢失。


为了避免画面内容丢失,需要将Unity相机的显示策略改为:若需要的显示内容“变窄”,则保持相机“画框”宽度不变,增加相机“画框”的高度。
实现方式为通过脚本再次定义相机的orthographicSize:
Camera cam;
float standardAspectRatio = 0.5625f; // 标准的显示比例
float standardCamViewVerticalSize = 9.6f; // 16:9竖屏下,标准的相机竖直高度
void ResizeCamera()
{
if (Screen.width / Screen.height < standardAspectRatio)
{
cam.orthographicSize = standardCamViewVerticalSize
* (Screen.height / Screen.width)
* standardAspectRatio;
}
}