1、当绘制完成后(利用最新得Unity UI系统描述Canvas),用户还可实现某些增强效果。
例如,可通过相机透视绘制全屏UI;或者利用上述绘制结果并将其“悬挂”于游戏场景中
2、
Screen Space - Camera,采用了平面屏幕Canvas绘制所提供的内容,其中包括:
如透视、视域、深度排序以及剔除机制。随后,可针对Canvas将其应用于渲染循环中,生成3D风格的Canvas UI,而非平面系统。
World Space,其他类型的视图则是使用Canvas,并将其嵌入于3D场景中,其中包括电视屏幕、计算机控制台、交互式会话元素,甚至是与玩家绑定的清单型UI。
然而,Canvas是图像的唯一组成部分,为了使此类元素在3D方式下工作,需要与场景中的相机协同工作,而非绘制于屏幕上的2D表面,这一点与Screen Space - Overlay Canvas类似。
3、当使用Canvas时,相机对象分为两类:
①渲染相机:可置于场景任意位置,与主相机无关
Clear flags:用于选择所清除的部分渲染路径(每帧中)——默认为Don't clear,以使UI可绘制于场景
Culling Mask:选择相机视图中所绘制的元素——默认该项设置为UI
Projection:用于设置透视(3D)或正交视图(2D),默认设定为透视,正交则与Screen Space-Overlay Canvas相同
Perspective Field of View(FOV):控制相机视图中的透视可视角度,基本上可视为视图的变形程度
Viewport Rect:用于控制相机的视口尺寸。(当构建UI时,该项设置后不应再次对其进行修改)
Target Texture:用于将当前相机渲染至RenderTexture中,但World Space Canvas应用起来更为简单
该选项唯一的优点使可在场景中绘制相同的UI
其他渲染设置项:Depth、Path、Occlusion Culling及HDR也可设置,但不会对UI系统提供真实值,较好的方法是使用 Canvas UI特性。
②事件相机:针对World Space,UI系统将使用到此类相机。在将用户输入信息光线投射至场景中时,可确定EventSystem所使用的相机,如果Event Camera为null,默认状态下将使用Main Camera
默认情况下使用Main Camera即可。如果用户在不同的相机上进行渲染,则需要将其设置为Event Camera;否则输入信息将无法正常工作。
4、定位Canvas
当采用World Space Canvas时,从理论上讲,可在3D环境下实现UI Canvas的任意定位和旋转。与Screen Space Canvas不同,其不受任何限制。实际上,World Space Canvas几乎完全等同于Render Texture,但不会受到许可权限的限制,并向全体人员开放。
Render Texture可视为一类特定的纹理,并通过独立相机在运行期内生成。相机的识见内容表示为纹理缓冲区中的输出结果,而非直接绘制于屏幕上。随后,图像可置于3D场景中的任意之处,进而显示相机的输出结果。
Render Texture常用于纹理链中(纹理在不同的相机视口中进行渲染),并呈现后视显示效果;或者设置额外的视图,而非基于Main Camera的显示结果。
Render Texture需要得到Unity Pro的授权许可,免费版本对此不予支持。
当World Space Canvas设置完毕后,用户可在其中构建下列内容:
# 电视屏幕,可在其中显示一系列广告内容
# 处于浮动状态的信息栏
# 基于游戏角色的交互式文本
# 可与玩家交互的计算机终端