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;
}
}
热门推荐
红箭-12导弹:发射后垂直爬升灌顶打击,让敌军坦克有来无回
生命面前无死敌,曼城缅怀慕尼黑空难67周年:ACityUnited
哪些人要慎吃“亚麻籽油”?分享正确的吃法和选购技巧,早做了解
燃气壁挂炉使用的耗气量如何计算呢?
Lifepo4电池可以用普通充电器充电吗?
磷酸铁锂电池最佳充电方法
哪种类型的新能源锂电池性能最稳定?
专利侵权诉讼的举证责任如何分担
2025年产假补贴办理指南:条件、流程及常见问题解答
核动力破冰船,助阵北极航道
怀孕期间缓解头疼的四个实用方法
楚雄至贵州旅游美食攻略:必吃小吃与特色美食一览
周末啦!来楚雄赴一场舌尖上的“盛宴”
春天的红花有哪些花名字
婴儿呕吐的原因以及怎样解决
人生来就能看到足弓吗?怎么知道足弓是不是正常?
房颤房扑的治疗方法
清明将至,儿童该如何选择青团?
青团:四种经典口味的详细制作教程
胡塞武装为何要打美国航母?
宝宝100天体检项目全解析
它能有效降低“坏胆固醇”!一直写在指南里,很多人却不知道
宇文化及:隋末权臣的覆灭与死亡之谜
宇文化及:隋末权臣的覆灭与死亡之谜
《档案》为您揭秘“古斯特洛夫号”沉没之谜
化橘红花开,见证化州千年南药文化的魅力
科学护肤步骤大揭秘
北京推出多项培训项目助力新就业群体破解发展瓶颈
手机如何打拼音:输入法设置与输入技巧详解
iPhone充电时的一些习惯,让你的电池健康度保持100%