Unity UI -- (7) 创建世界空间UI
目前为止,我们已经设计了一个屏幕空间UI(Screen Space UI)。一个屏幕空间UI会在屏幕上平坦放置,它会被渲染到环境中所有东西的上面,无论相机位置在哪里。



为何使用世界空间UI?
世界空间UI在我们想要将UI集成进3D世界中去时非常有用,比如游戏里的虚拟控制面板UI。


设置世界空间UI的Canvas
我们首先复制一份之前的场景,在前面小节完成的基础上对其进行改动。
1. 在工程窗口中,找到并选择当前场景,按Ctrl + D复制,将其重命名为“UI_WorldSpace”。然后打开这个场景。
2. 在Hierarchy中选中Canvas,在其Inspector中将Canvas Render Mode修改为World Space,并且将Main Camera赋值给Event Camera属性。

我们会发现UI突然消失了,这是因为UI界面大小过大,超出了可视范围。



Screen Space - Overlay: 之前我们所使用的模式,将UI覆盖到屏幕最上面,无论后面有什么东西。
Screen Space - Camera:相机将UI放置到距离相机一定距离的位置,在相机发生变化时UI也会有变化。
关于这几种渲染模式的细节差异描述,可以参考Unity官方文档:
设计你的世界空间UI
接下来请自由发挥设计出你自己的世界空间UI。在世界空间模式中,Canvas或单独的UI元素都可以进行平移、旋转和缩放,就和场景中其它3D物体一样。



