您的位置:首页 > 其它

Canvas

2016-03-29 18:32 330 查看
Canvas是指能包含所有UI元素的一个区域。Canvas是一个附带有Canvas组件的游戏对象(Game Object), 并且所有UI元素都是其子对象。

创建一个新的UI元素,例如使用菜单GameObject > UI > Image创建一个Image,如果这时在场景中还没有一个Canvas,那么将自动创建一个Canvas,而创建的UI元素是这个Canvas的子对象。

Canvas区域是以矩形的方式显示在屏幕视图中(Scene
View)。这使得我们很容易把UI元素放在适当的位置而不必使其必须总是出现在游戏视图(Game View)中。

Canvas使用EventSystem来协助Messaging System







[b]元素的绘制顺序[/b]

Canvas中的UI元素的绘制顺序与其在Hierarchy中的顺序是一样的。第一个子对象最先被绘制,接着是第二个,诸如此类。如果两个元素重叠了,后绘制的元素将覆盖先绘制的元素。

要想使某个元素覆盖其他元素,只要在Hierarchy中拖动他们使其重新排序即可。也可以在脚本中使用如下方法排序:SetAsFirstSibling, SetAsLastSibling, and SetSiblingIndex


渲染模式

修改Render Mode的值可以改变Canvas是在屏幕空间中渲染还是在世界空间中渲染

Screen Space - Overlay

这种渲染模式将屏幕中的UI元素放置在场景的顶层。如果场景调整了尺寸或者改变了分辨率,UI元素会自动的调整尺寸来匹配





Screen Space - Camera

这种模式与Screen Space - Overlay相似,但是在这种模式下,Canvas被放置在指定的Camera前方的一段指定距离的地方。UI元素由这个Camera渲染,也就是说Camera
settings会影响到UI的呈现。如果Camera设置为Perspective,则UI元素也是有视角的渲染(rendered with perspective), 并且透视变形的效果由Camera
Field of View控制。如果屏幕调整了尺寸或者改变了分辨率,或者改变了相机锥范围,Canvas会自动的尺寸来匹配



World Space

在这种模式下,Canvas的作用与场景中其他对象是一样的。通过Rect Transform, Canvas的尺寸可以被手动的设置, 并且UI元素可能在其他对象之前也可能之后,这取决于场景的3D布局。当UI是世界的一部分的时候这个功能很有用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: