UGUI-界面适配

来源:互联网 发布:byethost绑定域名 编辑:程序博客网 时间:2024/06/02 03:21
对于界面的适配分Android和IOS两种系统处理:

一、iOS设备,

这种类型的设备由于数量有限,主要分为iphone和ipad,

iphone:

只要做到 4:960x640、5:1136x640、6:1334x750、plus:1920x1080 几种适配即可,而他们的分辨率虽然不一样,但是比例全都是16:9,(除了4,但现在基本可以忽略了)所以适配器起来非常方便,只需要等比缩放就行了。

ipad:

有mini:1024x768、ipad:2048x1536、pro:2732 x2048,其实比例都是4:3,同样按照等比去适配,但是有些应用可能iphone和ipad同时出,这样的话,由于16:9和4:3相差太大,等比的话可能有点变形,所以我们对这几种屏幕做了不同的界面配置文件,或者分别建两个画布,分别适配和布局。

二、Android设备,

屏幕分辨率实在太多种,所以统一设置为1136x640或者是1334x750 的缩放比例了,其实还是16:9,这样就可以做一套UI直接导出到android和ios了。


Unity的UGUI,

提供了三种基本的界面适配方案,Canvas 上的 Canvas Scaler 组件就是用来进行多分辨率适配的。

Ui Scale Mode 一般选择 Scale With Screen Size,并设置好设计分辨率,其他两个选项都是固定像素大小。

Reference Resolution 表示我们设计界面的时候使用的屏幕大小;

Screen match Mode 有三种选择,即三种界面适配方案:

1、Shrink 保持缩放比例,裁切;
2、Expand 缩放不裁切;
3、Match Width Screen Size:

a.Match Width:适配宽度,把宽度设置为屏幕宽度,然后保持比例;

b.Match height:适配高度,首先把高度设置为屏幕高度,然后保持比例。


详细的解释请参考:Unity UGUI之Canvas Scale


注意:

1、Screen Match Mode 中一般选择 Expand,它可以保证ui中的所有元素都在屏幕内部;相对比的一个选项是Shrink,

它可以保证不留空白边。

2、多分辨率的思路是 Scaler 中选择 Expand 保证所有 UI 元素在屏幕内部。少部分界面,如主界面、战斗界面等根据需要设置

Anchors 中的全屏拉伸。注意,这里的拉伸的含义仅仅是设置 Panel 的宽、高,并不影响子控件的缩放,但是会影响其布局。

3、如果是 Prefab 加载 UI 的时候,设置父节点使用 transform.SetParent(root, false) 这个函数调用,而不要直接设置Parent

属性,否则会存在 RectTransform 大小或坐标错误的问题。


0 0
原创粉丝点击