【Unity】在分辨率长宽比变化时实现画面内容不丢失

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

16:9
16:10​​​​

 

        为了避免画面内容丢失,需要将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;
    }
}

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值