Unity新UI系统概述——Canvas

来源:互联网 发布:修合无人见存心天地知 编辑:程序博客网 时间:2024/05/21 22:35

Canvas是用来放置所有UI元素的地方。Canvas是一个含有Canvas组件的GameObject,所有的UI元素必须是这样一个Canvas的子对象。

如果场景中还没有Canvas对象,新创建UI元素时就会自动添加Canvas,比如当你用菜单GameObject->UI->Image创建新的Image元素时。

Canvas在场景窗口中显示为一个矩形。这会方便你进行UI元素的对位,而不用到游戏运行窗口中去调整。

元素的绘制顺序

UI元素的绘制顺序和在层级窗口中显示的顺序是一致的。第一个子对象最先绘制,第二个子对象次之,等等。如果两个UI元素重叠,后面的会绘制到之前的那个上面。

只要通过拖拽改变UI对象在层级窗口中的顺序就进可以让任何一个元素绘制到最上面。这个顺序也可以通过Transform组件中相关的脚本接口改变:SetAsFirstSibling, SetAsLastSibling和SetSiblingIndex。

渲染模式

Canvas拥有相关的渲染模式,可以设置在屏幕或世界空间中渲染。

Screen Space-Overlay(屏幕空间——覆盖)

这个模式将UI元素放到场景的最上面渲染。如果屏幕缩放或改变了分辨率,Canvas会自动改变尺寸去匹配。


Screen Space-Camera(屏幕空间——摄像机)

这个和Screen Space - Overlay模式类似,但在这个渲染模式下,Canvas是被放在一个指定摄像机前面一定的距离上。UI元素是被这个摄像机渲染的,也就意味着摄像机相关的设置会影响UI的显示。如果摄像机设置为透视模式,UI元素就会渲染为透视,而透视后的扭曲程度由摄像机的视域决定。如果屏幕改变了大小或者改变了分辨率,或者摄像机的视景体改变了,Canvas都会自动改变尺寸去匹配。

World Space(世界空间)

这种渲染模式会将Canvas当作场景中任何的其它对象一样对待。Canvas的尺寸可以用Rect Transform进行手动调整,UI元素的遮挡效果由3D位置决定。对于需要将UI作为场景中的一部分或者作为剧情化界面的情况非常有用。


0 0
原创粉丝点击