• 关于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对齐即可。

  • 相关阅读:
    骑行封龙山
    静夜
    骑行伏羲台
    我?
    生活挺好
    多事之秋,大家注意安全
    看不到啊看不到
    个人时间管理
    给DataGrid设置中文列名
    食用油是那么让人又爱又恨!
  • 原文地址:https://www.cnblogs.com/damowang/p/6879405.html
Copyright © 2020-2023  润新知