• Unity:UGUI之Canvas详解(屏幕适配)


    新建一个画布 Canvas

    1)第一个组件:RectTransform 

    ① Transform的子类

    ② Anchors 锚点:屏幕适配重点!设置锚点,想象锚点类似一根钉子,把一块弹力布某个角钉住,使劲拉伸,被钉住的这个角不会变。点开锚点框后按住Alt键,可以自动对齐/平铺。

     ③ 获取UI的宽高最安全的方式

    RectTransform rect = transform.GetComponent<RectTransform>();
    Debug.Log("获取UI的宽:"+rect.rect.width);
    Debug.Log("获取UI的高:"+rect.rect.height);

     

     左边按下是蓝图模式,用来控制Rotation和Scale的,旋转和缩放,Panel的大小不会变。

    (Panel指RectTool模式下物体的边框,即新建一个空物体,只添加RectTransfrom组件)

    右边R按下是原始编辑模式,用来控制Anchors和Pivot。

    2)第二个组件:Canvas

    ① Render Mode

    Screen Space - Overlay:显示在所有层级之上。画布会缩放来适应屏幕,直接渲染而不参考相机(没有相机也能渲染)。

    Screen Space - Camera:这个模式要参考相机,UI和相机的距离。例如在UI层上面绘制linerender,因为linerender是3D的,要把linerender显示在UI层前面才能看见,此时就需要此模式,并且把UI距离调到比linerender Z轴更远处。

     World Space:将UI视为平面渲染。其他对象可以位于UI后面、中间穿透、前面。画布大小取决于与相机视角和距离。例如显示在人物头顶的血条。

     3)第三个组件:Canvas Scaler 画布缩放器  屏幕适配重点!

    Q:之前讲过设置锚点可以让图标始终保持在四个角,图标位置正确,但图标大小却不会随屏幕大小变化,如果屏幕很小,图标就会过大遮挡住画面。

    那么怎么让图标能随屏幕大小放大缩小呢?

    A:Canvas Scaler组件,UI Scale Mode 选择 Scale With Screen Size模式。

    Q:这样就正确了吗?你会发现640*960竖屏设置好的图标,到了960*640横屏还是会变大。

    A:这是因为Match参数默认是0,即以width为标准,将这个参数调至0.5,即以width和height为标准。

    你以为这样就对了吗?实际上只有Expend模式是按比例拉伸,其他两个模式在极端情况下都会发生裁切。如果想要始终显示所有的UI就要选择Expend。

  • 相关阅读:
    堆排序
    冒泡排序
    描述字符串写入文件
    Java Socket编程,读服务器几个字符,再写入本地显示。
    final,finally,finalize区别
    圆桌问题 (a)
    表达式
    计算系数
    乌龟棋
    显示图像(多源dfs)
  • 原文地址:https://www.cnblogs.com/tomatokely/p/15705667.html
Copyright © 2020-2023  润新知