Unity UI适配不同比例分辨率的设置
至前我参与的小游戏开发的过程中,在适配不同分辨率比例的手机上UI遇到了一些问题.下面对解决这些问题的方法进行记录(适配不同分辨率的方法主要在第"二"和"三"中).
一.Sprite(2D and UI)类型Texture图片设置
该设置只限于Texture Type 类型为"Sprite (2D and UI)"的图片.(在Project栏里选中Texture图片,然后在Inspector窗口会显示它的设置)点击Sprite Editor,可以设置锚点和裁切图片等等.(锚点对于图片的显示还是挺重要的)
附加:这里的"Pixels Per Unit"大小.与下面Canvas-Canvas Scale组件中"Reference Pixels Per Unit"大小相对应.
二.Canvas设置(UI的画布)
(选中场景中的Canvas,然后在Inspector窗口中设置)
1.Canvas组件:
Render Mode:设置UI与3D场景中的物体的渲染关系.
1)ScreenSpace-Camera模式,可以在下面RenderCamera赋值的摄像机中的3D物体 粒子特效等渲染到UI中,并且能设置层级.
2)ScreenSpace-OverLay模式,比较适合纯UI,UI显示在所有3D物体前面.
3)WorldSpace模式,则是把UI放到3D场景中渲染.
2.Canvas Scale组件:
设置UI的适应缩放.
1) UI Scale Mode:
模式1.Scale With Screen Size:根据原屏幕大小进行变化比较小的缩放.(该模式下,能够较好地适应不同分辨率和大小的屏幕)
衍生选项- Renference Resolution:设置开发时屏幕分辨率,做为参考分辨率.
Screen Match Mode:不同像素比的场景显示UI的模式
1 Expand:扩展拉伸.(拉伸后分辨率>=Renference Resolution的参考分辨率)
2 Match Width or Height:按原始比例匹配宽度或者高度.(屏幕比例不同会有黑边)
3 Shrink:收缩.(收缩后分辨率<=Renference Resolution的参考分辨率)
模式2.Constant Pixel Size:根据原像素大小进行显示.(该模式下,屏幕的分辨率会影响UI的大小)
衍生选项- Scale Factor:像素倍数,即放大的倍数.(听说用该方法放大后不会失真)
模式3.Constant Physical Size:根据固定的物理大小显示.(该模式下,屏幕的大小和分辨率不会影响到UI显示的大小)
2)Reference Pixels Per Unit:每单位参考像素数.(与上面图片设置中的"Pixels Per Unit"大小相对应)
假如想让UI可以自适应各种分辨率比例的手机屏幕的话,可以参考上图的设置,Reference Resolution根据你的开发的分辨率比例设置.
三.UI元素组件:
(上面二讲的是整体UI画布的设置,这里讲每个UI元素配合缩放的设置,UI元素的像素和画布像素是不一样的,都需要进行设置.)
Canvas内的UI元素,都有Rect Transform-Anchor组件,若想要适配不同分辨率比例的屏幕,需要对UI元素进行锚点设置.
1.不需要拉伸的UI就在下面这9个锚点预设中选择.(比如中间/边上/角上的按钮等)
Anchor Presets | Left | Center | Right | Stretch横向拉伸 |
top | √ | √ | √ | |
middle | √ | √ | √ | |
buttom | √ | √ | √ | |
stretch竖向拉伸 |
例如,分辨率比例改变后,要保持该按钮在左上角,就选择topLeft锚点位置.
2.需要拉伸的UI就在下面这7个锚点预设中选择.(比如背景/横幅/竖幅等等)
Anchor Presets | Left | Center | Right | Stretch横向拉伸 |
top | √ | |||
middle | √ | |||
buttom | √ | |||
stretch竖向拉伸 | √ | √ | √ | √ |
例如,中间横幅需要横向扩展到屏幕两边,就选择middleStretch横向拉伸.
四.其他
1.UI性能优化
1) UI类的物体基本上都会有Raycast Target这个选项.
我目前了解到的是,如果某些UI只是装饰,没有交互行为的话,就不要勾选Raycast Target 选项,因为Raycast Target是射线检测UI的交互的,只要勾选了就会进行检测,所以会浪费性能.
2.按钮
现在UGUI在按钮功能上方便用许多,可以直接设置原图片 和 按下后需要替换的图片,之前我们同伴还自己写了个按下然后替换图片的脚本,现在UGUI都包含了这些功能而且功能很强大.
Target Graphic:原始按钮图片.
Pressed Sprite:按下后的按钮图片.
3.Sprite层级
我个人对Sprite的理解是3D场景中的片.但是它显示得层级跟 其锚点与摄像机的远近 有关,所以会导致它显示的前后不正确的问题,所以可以调整它得渲染层级:
Sprite Renderer - Order in Layer: 显示层级,即渲染层级.层数越高离摄像机越近,近的层级会挡住远的层级,就不会出现摄像机移动导致Sprite渲染层级发生变化的问题.
Unity UI适配不同比例分辨率的设置相关推荐
- Unity UI和场景适配
1.ui适配 初始情况: 1.为什么要适配? 因为通常我们做ui的时候,会使用一个标准分辨率作为参考,然后所有ui在这个分辨率下都能正确显示,我们游戏使用的是1136x640这个分辨率.但是当我们在面 ...
- iPhone 6屏幕:4.7英寸1334*750分辨率,5.5英寸1920*1080,UI适配不困难
苹果iPhone 6应该会配置4.7英寸屏幕,显示分辨率为1334*750.换句话说,尽管iPhone 6的屏幕像素密度与iPhone 5S相同为326ppi,不过因为分辨率的高宽都发生了变化,手机应 ...
- Unity之手机键盘自定义输入栏位置适配不同手机分辨率适配
Unity之手机键盘自定义输入栏位置适配&不同手机分辨率适配 效果图 PC端展示 手机端展示(手机是顶部带摄像头的IQOO Neo 5 ) 设计思路 也没啥思路不思路的,就是获取键盘高度,在安 ...
- Unity UI 父对象根据子对象进行适配
Unity UI 父对象根据子对象进行适配 引入 大家都知道我们用到Unity制作项目的时候会经常让UI子对象根据父对象适配,那么如果我们需要让父对象根据子对象适配该怎么做呢 Content Size ...
- Unity基础笔记(3)—— Unity UI系统
Unity UI系统 一.UI系统介绍 1. Unity2D 和 UI的区别 Unity2D:主要基于 SpriteRenderer 和 2D物理系统等组成. UI:由 Canvas 以及 各种 UI ...
- Unity多分辨率适配
UGUI: 原文链接:http://blog.csdn.net/dingkun520wy/article/details/49471789 1.Canvas的属性配置 2.Canvas Scaler的 ...
- Unity iPhoneX适配方案
baidu UNITY_IPHONE Unity iPhoneX适配方案[NGUI&UGUI] https://blog.csdn.net/qq_35936174/article/d ...
- Unity屏幕适配解决方案
文章目录 UI尺寸选择 市面设备比例 内存占用 分辨率适配 高分辨率 分屏模式 宽高比适配 常规尺寸适配 刘海屏适配 全面屏适配 UI尺寸选择 市面设备比例 截至2017年9月,iOS与Android ...
- android 布局可大可小,UI设计教程之:ios与android ui适配(将IOS UI转换成Android经验畅谈)...
内容提要:这是UI设计系列教程之ios与android ui适配经验畅谈.文章作者介绍了自己将IOS UI转换成Android经验,包括:不要直接转换.了解单位和组件缩放格式.屏幕尺寸DP和像素的换算 ...
最新文章
- 2009-徘徊-开场白
- 关于ajax跨域请求(cross Domain)
- 139.00.005 Git学习-分支管理
- C#编程语言之MD5加密的两种方式
- 洛谷2766:[网络流24题]最长不下降子序列问题——题解
- 连接fiddler后手机无法显示无网络
- JAVA实现在线聊天室(层层递进)
- 计算机f8键的功能,详解:XP系统修改启动时F8键有哪些功能?
- python语言三大基本控制结构_Python基础知识之4——三大控制结构
- FILEUTILS 介绍
- Struts 2.2.3 DOS漏洞
- 世界500强面试题 - 头脑
- XP下grub4dos硬盘安装和启动FreeBSD-8.0-i386+GNOME桌面
- 巴别鸟10个使用小技巧,提高你的工作效率
- 路由器上DNS的设置
- 小猿圈Java学习分享2019Java面试题
- jks与pkcs12格式的keystore互转
- spoolsv解决方法
- 3.模板模式_1:什么是模板模式???什么情况适合用模板模式???模板模式如何实现???
- 嘉立创电路板制作过程全流程详解(五):测试、锣边、V-CUT、QC、发货
热门文章
- 【阅读笔记】自卑与超越
- 《自卑与超越》阅读总结
- 录屏剪辑软件哪个好 录屏后怎么剪辑视频
- bootstrap中文字居左和居右
- 用python爬取图片的一点小结
- solidworks2018已停止工作_昨天开始使用lr controller 已停止工作问题
- 波动方程有限差分法c语言,二维波动方程的有限差分法.pdf
- php不做手术会怎么样,PHPV_如果不能手术会怎么样_怎么样才能挂上你的号 手术后可以视力恢复吗 - 好大夫在线图文问诊...
- 从前慢-BIO、NIO、AIO
- java从map取值_java的map取值