Unity游戏开发中UGUI的屏幕适配方案
创作时间:
作者:
@小白创作中心
Unity游戏开发中UGUI的屏幕适配方案
引用
CSDN
1.
https://blog.csdn.net/qilin598866753/article/details/139690329
游戏开发的过程中,UI都是在设计分辨率下出效果图,开发者需要适配各种不同的屏幕分辨率。本文介绍商业化项目中使用的屏幕适配方式,实验时UI设计分辨率为1080*1920。
1. 设置CanvasScaler
前两个设置没什么好说的,主要是第三个选项Screen Match Mode得设置为Expand。
Expand模式会将 UI 缩小到能在屏幕中显示完所有的UI元素。
我们可将Game视图分辨率设置为1080 * 1600(窄屏),来看Shrink模式和Expand模式的效果:
Shrink模式,部分UI超出屏幕能显示的区域:
Expand模式,所有的UI元素都在屏幕显示区域内:
使用Expand模式能将所有的UI元素显示在屏幕内,但是会引出一个新的问题,即背景图片无法铺满整个屏幕,这是不能接受的,由此我们进入下一步背景图片适配。
2. Expand模式下的背景图片适配
由于Expand模式下导致背景图片过度缩小,我们得再次修正其大小,以铺满我们整个屏幕。
我们需要添加在背景图片上添加一个脚本UIBgAdapt,放大尺寸来铺满这个屏幕:
UIBgAdapt组件请参考附件,核心为:
//设置图片铺满整个屏幕
float expandScaleFactor = Mathf.Min(screenSize.x / inst.ImageWidth, screenSize.y / inst.ImageHeight);
float shrinkScaleFactor = Mathf.Max(screenSize.x / inst.ImageWidth, screenSize.y / inst.ImageHeight);
float resetScale = shrinkScaleFactor / expandScaleFactor; //shrinkScaleFactor为我们想要的缩放,expandScaleFactor为我们默认设置的缩放
inst.m_Transform.localScale = new Vector3(resetScale, resetScale, 1);
UGUI也给我们提供了一个组件AspectRatioFitter,使用它可以达到同样效果:
不同分辨率的适配就此结束。
3. 屏幕安全区域适配
如果目标设备是刘海屏,则红色区域的内容不能显示出来(四个绿色的块锚住屏幕四个角):
因此我们需要修改RectTranform的Height(如果是横屏游戏修改Width)
在GameObject上添加UISafeArea组件:
实验时在组件上勾选Is Safe Area,可看到四个绿色的方块都在安全区域内显示了。
UISafeArea组件请参考附件,核心为:
private void applySafeArea()
{
if (this.isSafeArea) //如果是刘海屏
{
Vector2 sizeDelta = this.m_ParentRectTransform.sizeDelta;
//sizeDelta.x *= 0.9f; //横屏游戏开启这个
sizeDelta.y *= 0.9f;
this.m_RectTransform.sizeDelta = sizeDelta;
}
else
{
Vector2 sizeDelta = this.m_ParentRectTransform.sizeDelta;
this.m_RectTransform.sizeDelta = sizeDelta;
}
}
热门推荐
中医阴阳五行图详细版
医生:心梗发作前会有3次预警和11个信号,不能忽视
化疗和放疗的区别是什么
浙江首发“浙个好”公共品牌名录 以品牌建设赋能个体经济
云南如何解锁候鸟“越冬秘籍”?
incel男是什么意思?了解Incel文化与社会背景
IP地址是什么意思?怎样确定位置?
欧冠16强未来赛程分析:强队迎来魔鬼赛程,马竞四战皇马巴萨
第一次来北京故宫必看超详细指南
POS机扫码验签失败的原因及解决方法
本田飞度使用油是否合适?
上海周边自驾游有哪些好去处?夏日“朋友圈”美食美景线路推荐→
壁挂炉常见故障代码及解决方法
福建安溪人最爱喝的铁观音,怎样正确冲泡?用对方法又香又耐泡
铁观音的基本常识:从分类、采摘季节到产地详解
山药发红是怎么回事
刷牙这件小事儿,您真的了解吗?
【腌制肉的方法】腌制肉怎么保存 腌制肉的做法注意事项
计算机考证全攻略:从入门到进阶,助你职场加速
剑兰的养殖方法和注意事项大全
荷兰猪怎么养?一文详解豚鼠的正确饲养方法
上海交大曹心德教授团队提出降低污染土壤颗粒暴露导致铅中毒风险的新策略
拍卖公司需要什么资质
容积率怎么算?建筑容积率计算公式及方法详解
ArcGIS专题图制作全流程详解
提前还贷全流程指南:从申请到解除抵押
从零开始:如何在PPT设计中激发创意灵感
哪吒2高票房不应冲昏了头脑,还是要保持清醒和理智
查看手机序列号的方法和注意事项
刺梅花的养殖方法:从品种选择到日常养护的全方位指南