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 处理方式相同,通过屏幕比例修改摄像头坐标和旋转,需要根据实际调整
Unity 端强制 16:9 解决方案
最新推荐文章于 2023-05-18 20:54:11 发布