前言
Unity的UI系统比较多,这篇文章侧重于讲UGUI,以后可能会考虑学习官方主推一下UI Toolkit,但目前来说UGUI依旧是游戏开发的主流。以后编写文章会偏向于业务,理论则会适当减少,通过实际应用场景更好地学习各种控件的原理。
实际案例
UGUI理论
Canvas
Canvas(画布)是所有UI元素的容器,负责渲染UI元素,所有元素必须在Canvas节点下
三种渲染模式
Screen Space - Overlay
字面意思,这种模式渲染的UI直接覆盖在屏幕上,不会受到物体的影响
Screen Space - Camera
在这种模式下,UI会被渲染在摄像机前面,通过Plane Distance可以调整UI和摄像机的距离(距离不影响显示大小)
在这种模式下,UI会被物体所遮挡,如当物体和摄像机的距离小于Plane Distance
World Space
在这种模式下,UI可以像物体一样使用,比如旋转、倾斜等
Canvas Scaler
Constant Pixel Size
固定像素尺寸,不会随屏幕大小改变发生变化
Scale With Screen Size
随屏幕尺寸改变而改变,可选由宽或者由高决定
Constant Physical Size
固定物理尺寸,游戏场景不常用
Graphic Raycaster
可设置UI触发(点击、触摸)是否会被物体所遮挡
Canvas Group
这玩意名称带有一定的误导性,实际上在单Canvas布局场景下,可以给子UI组挂载Canvas Group,然后实现对子UI组的透明度和控制
四个设置
Alpha
透明度
Interactable
可否交互
Block Raycasts
阻挡射线(若该UI底下还有一个UI,勾选可阻挡射线与所遮挡的UI发生交互)
Ignore Parent Groups
忽略父组(若该组的父组件也有个Canvas Group,勾选可以不受父组件影响)