Unity:UGUI之Canvas详解(屏幕适配) 新建⼀个画布 Canvas
1)第⼀个组件:RectTransform
① Transform的⼦类
麻将纸牌
② Anchors 锚点:屏幕适配重点!设置锚点,想象锚点类似⼀根钉⼦,把⼀块弹⼒布某个⾓钉住,使劲拉伸,被钉住的这个⾓不会变。点开锚点框后按住Alt键,可以⾃动对齐/平铺。800导航
③获取UI的宽⾼最安全的⽅式
RectTransform rect = transform.GetComponent<RectTransform>();
Debug.Log("获取UI的宽:"+width);
台历架Debug.Log("获取UI的⾼:"+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。