
Unity中的画布有点像一台电视的液晶屏幕,但又不完全是,实际上画布是在开发游戏时要显示的可绘制的UI元素及游戏内容显示的区域,而且所有可显示的内容元素都必须是Canvas的子元素。
什么是UI元素
UI元素只是游戏中向玩家显示有用信息的元素,一般情况下都会跟随游戏持续在画布中显示,例如拳皇游戏当中的能量条、头像、血条、计数器等等。
如何创建Unity画布
通过菜单GameObject → UI → Canvas即可创建一个空的画布,在画布上可以右键添加一些文字、图像、滑块、滚动视图等等。

如果直接使用菜单GameObject → UI → Image或Panel则会自动创建一个新的带子图像的元素新画布。

Unity画布工作原理
Canvas在游戏中是一个矩形空间,也是一个游戏对象,它也有附加一些组件,可以当它是一个容器,所有的UI元素都是Canvas游戏对象的子对象。

以下是画布组件的全部属性,第一个和第二个较为重要。

第一个是画布的本身属性,它具有更改画布在屏幕上的目标显示、排序顺序及附加着色通道。
第二个Canvas Scaler(画布缩放器)是用于根据不同的屏幕尺寸设置UI元素的大小和缩放比例。
在Canvas属性中,较为重要的是渲染模式( Render Mode ),它有三种模式,它们决定了画布在游戏中的处理和渲染的方式。

屏幕空间 – 叠加
Screen Space – Overlay渲染模式将UI元素放置在渲染场景的屏幕顶部,这个选项在制作科幻界面或静态UI元素时通常会使用。

这个模式会根据屏幕大小自动将画布中的UI元素缩放到所需的大小。
屏幕空间 – 摄像机
Screen Space – Camera与叠加模式的工作方式非常相似,但需要指定了一个相机来渲染UI,指定之后画布会自动匹配至摄像机的中心且四个角都会进行贴合,此时如果调整摄像机的属性画布也会进行改变。

通常i3D不建议大家使用此选项,因为叠加模式要更好用一些,因为它能够自动缩放UI元素。
世界空间
World Space模式与其他两种完全不同,在世界空间中,在怎么调整都不会改变画布及UI元素的形态,而且只会被简单地视为场景中的一个游戏对象,而不是在顶部优先渲染。

还有,当将画布更改为世界空间后,Rect Transform(矩形变换)将从锁定状态变为激活状态,可以对画布在世界空间中进行调整,例如尺寸大小、旋转、位置,这种设置将改变与其他场景对象中的关系。
