勇哥注:
UI是非常重要的内容,如果想做触摸屏效果,或者把unity变成软件界面来使用的话,这个是必须搞明白的。
(一)UI的基础理论
(1)如果要使用UI,场景中至少要有一个Canvas(画布),所有的UI组件都要成为它的子物体
(2)另一个是EventSystem(事件系统),如果场景中没有,系统会自动跟你添加一个。
(3)点击按钮,切换到2D视图,此时你看到了Canvas的大小,这个默认大小是跟据你的摄像机视图来的。
如下图所示,这个图片组件在2D视图中的上下左右的位置,等于游戏视图(也就是摄像机视图)的对应位置。
(4)Canvas的“渲染模式”默认项是“屏幕空间-覆盖”,它的效果就是你的UI对象永远都是在所有场景对象的最前面。
如果切换成第三项,“世界空间”,那么Canvas连同它的子对象,都会变成一个普通的场景中的3D对象,它就可以使用Transform进行变换位置了。
(二)UI组件定位的理论
定位的作用是UI适配不同大小的屏幕设备。
(1)锚点。
如下图,锚点是作用于选中对象的父物体上面的东西,下图中的图片组件位置,是相对于锚边计算的坐标。
另一个要注意的是,此时锚点的4个爪子是合拢状态
这个时候,图片的宽度与高度就是固定的。
这意味着,如果切换屏幕大小,图片的大小是固定的,不能正确适配屏幕。
(2)把锚点四个爪子鼠标拖动张开
此时最大的区别是图片不是固定大小,而相对于锚点4个爪子的相对位置。
而此时锚点的4个爪子又是相对于父对象(这个例子里是Canvas)的百分比位置。
因此屏幕大小一变,Canvas就变化,Canvas变化就会让锚点4个爪子位置变化,图片组件又是相对于锚点4个爪子的,因此它也会变化。
这样就达成屏幕自适应的效果。
为了方便快速移动锚点的4个爪子,你可以点击图标
出现常用的方案,如下图:

