Unity 端强制 16:9 解决方案

Unity 端强制 16:9 解决方案(无需改变原来代码)
1、在 Canvas 内增加一个空物体,命名为原 Canvas 的命名,修改 Canvas 的名字以确保不影响 GameObject.Find()
 

2、修改空物体的锚点方式为中心,分辨率和 Canvas 设置的分辨率相同(需要为
 16:9 的分辨率)
 

 3、在空物体的 4 个边外增加四个黑色的 Image,大小视分辨率而定,锚点对应边框(如左边框的图片以左边框拉伸),调整至相应位置
 4、四个边框加入完成后如图所示 

5、增加代码示范:
void Start () {
CanvasScalercanvasScaler = GameObject.Find("BaseCanvas").GetComponent<CanvasScaler>();
float ratio = (float)Screen.width / (float)Screen.height; 
// 4:3 的处理
if (ratio < 1.7f)
{
canvasScaler.matchWidthOrHeight = 0;
}
// 18:9 以及 18.5:9 的处理
else if (ratio > 1.8f)
{
canvasScaler.matchWidthOrHeight = 1;
}


6、3D 处理方式相同,通过屏幕比例修改摄像头坐标和旋转,需要根据实际调整

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值