关于UI适配的文档

第一部分:原理

(1)根据当前屏幕尺寸与开发预设屏幕尺寸尺寸得出以下参数。

1 XRatio:当前屏幕尺寸与开发尺寸的X轴比例

2 YRtaio:当前屏幕尺寸与开发尺寸的Y轴比例

3minRatio: XRatio与YRtaio中的较小值。

(2)之后,在UIManager里创建UI预制体时,根据预制体下添加的UISetReso_Attach脚本。调用SetResolution.Instance.SetAResolution适配。

 

第二部分:组件适配类型

UI组件需要添加UISetReso_Attach脚本,并设定Resolution_Type。

Resolution_Type有以下几种类型

(1)Normal

适用于图标,按钮等组件。

位置适配:物体的位置分别乘以XRatio,YRtaio

尺寸适配:缩放乘以minRatio,统一缩放

(2)Strech

适用于图标,按钮等组件。

位置适配:位置分别乘以XRatio,YRtaio

尺寸适配:缩放分别乘以XRatio,YRtaio,拉伸

(3)OnlyPosition

适用于空节点

位置适配:位置分别乘以XRatio,YRtaio

(4)UIScrollView_Item

适用于ScrollView的item

(5)UIScrollView_X_BG

适用于Horizontal ScrollView的背景 或者背景框

(6)UIScrollView_Y_BG

适用于VericalScrollView的背景 或者背景框

注意:

只有OnlyPosition不计算缩放,其他都计算缩放。

所以,当GameObject添加类型不是OnlyPosition的UISetReso_Attach后,子节点不能再添加任何UISetReso_Attach。

(因为父节点已有scale计算。所以所有子节点的位置和缩放都会被scale,所以子节点不需要再处理。)

举例:如一个按钮设置为UISetReso_Attach的Normal后,按钮GameObject下的子GameObject文字不需要也不能再添加UISetReso_Attach。

 

而当GameObject添加类型是OnlyPosition的UISetReso_Attach后,子节点可添加任何类型的UISetReso_Attach。

(因为只有位置计算没有scale计算。所以所有子节点的相对位置和缩放没有影响)

(7)UIPanel有Clipping时:

UIPanel及其以上的父节点位置不为0的,加OnlyPosition的UISetReso_Attach,

缩放在任何UIPanel之下的节点处理即可。

 

 

PivotType:

根节点一般分两种,center(0,0)  或者边角如 1280x720的屏幕左上角是(-640,360)。正上为(0,320)等。

Center:根节点为中心点

Corner:根节点为边角

 

第三部分:使用方法

1.如果整个UI预制体是小窗口

预制体添加UISetReso_Attach并设为Normal

2.整个UI预制体是全屏UI时

(1)背景或者其他需要拉伸的物体:添加UISetReso_Attach并设为Strech。

(2)图标,按钮等组件添加UISetReso_Attach并设为Normal。

(3)小窗口等非全屏可以作为一个整体缩放的部分,在父节点添加UISetReso_Attach并设为Normal。

3.NGUI的滚动列表UIScrollView

(1) 滚动列表的背景或背景框:横轴列表则设置为UIScrollView_X_BG,竖轴列表则设置为UIScrollView_Y_BG。

(2) 滚动列表:

中心点对齐:

父节点:可直接位于预制体下,或者父节点添加UISetReso类型设置为onlyPosition,Center。

UIScrollView:添加UISetReso类型设置为UIScrollView,Center。

中间节点:添加UISetReso类型设置为UIScrollView,Center。

 

边角对齐:

父节点添加UISetReso类型设置为onlyPosition,Center。

UIScrollView:添加UISetReso类型设置为UIScrollView,Corner。

中间节点:添加UISetReso类型设置为UIScrollView,Corner。

 

(3)Item

添加UIScrollView并设置为UIScrollView_Item,并在创建并设置完后,调用UIResolution.SetDynamicItem_AfterSet

4.锚点

把锚点设置到目标位置后,添加UISetReso_Attach并设为Normal。锚点下的物体不需要再处理。

5. 动态创建的物体

(1) 动态创建的物体在 非OnlyPosition的UISetReso_Attach之下时:不需要再处理

(2) 其他动态创建的物体:需添加UISetReso_Attach组件设置属性。并

在设置好位置和缩放等后调用

SetResolution.Instance.SetDynamicItem_AfterSet(UISetReso_Attach item)

(3)滚动列表item

在设置好位置和缩放等 并在UIGrid下后,调用

SetResolution.Instance.SetDynamicItem_AfterSet(UISetReso_Attach item)

 

6.3D

当有3D模型需要和2D UI对齐时。

(1)相机设置成正交相机。

(2)根节点为相机或者与相机相同位置旋转缩放。

(3)将锚点或者物体添加UISetReso_Attach组件设置属性为Space3D,之后和2DUI对齐即可。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值