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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)