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
要想使某个元素覆盖其他元素,只要在Hierarchy中拖动他们使其重新排序即可。也可以在脚本中使用如下方法排序:SetAsFirstSibling, SetAsLastSibling, and SetSiblingIndex
。
settings会影响到UI的呈现。如果Camera设置为Perspective,则UI元素也是有视角的渲染(rendered with perspective), 并且透视变形的效果由Camera
Field of View控制。如果屏幕调整了尺寸或者改变了分辨率,或者改变了相机锥范围,Canvas会自动的尺寸来匹配
创建一个新的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渲染,也就是说Camerasettings会影响到UI的呈现。如果Camera设置为Perspective,则UI元素也是有视角的渲染(rendered with perspective), 并且透视变形的效果由Camera
Field of View控制。如果屏幕调整了尺寸或者改变了分辨率,或者改变了相机锥范围,Canvas会自动的尺寸来匹配
World Space
在这种模式下,Canvas的作用与场景中其他对象是一样的。通过Rect Transform, Canvas的尺寸可以被手动的设置, 并且UI元素可能在其他对象之前也可能之后,这取决于场景的3D布局。当UI是世界的一部分的时候这个功能很有用。相关文章推荐
- session同步问题
- NSSet和NSMutableSet
- 【图像理解】自动生成图像的文本描述
- Looper
- bzoj1864(树形DP)
- Cursor query详解
- 1002. A+B for Polynomials (25)
- 赛伯乐与世纪金源强强联手,130亿布局大健康产业
- 一个开始
- 矩阵(快速幂):COGS 963. [NOI2012] 随机数生成器
- redis扩展安装
- 【codevs1082】线段树练习 3
- day 02
- 软件测试hw3
- 浮点水题hdoj2014这题之前做了很多次错了很多次纪念一番~
- ngDialog 弹出层关闭
- python tuple 操作
- Android命名规范
- hdoj--1069 Monkey and Banana(dp)
- java正则表达式(一)