Unity3D UI之Canvas(二)

Canvas简介:
引自Unity Manual中的原文:
The Canvas is the area that all UI
elements should be inside. The Canvas is a Game Object with a Canvas component
on it, and all UI elements must be children of such a Canvas.
UI原色必须绘制在Canvas所在的区域,所有的UI原色都需要在Canva节点下。
关于这一点,让我想起了初学Android时解除的SurfaceView,在SurfaceVIew中绘制,必须先产生一个Canvas句柄,然后再在Canvas中绘制,只是在Unity中,这一切已经给我们封装好,并可视化了。

Canvas中元素绘制顺序:
原文:
UI elements in the Canvas are drawn in the same order they appear in the Hierarchy. The first child is drawn first, the second child next, and so on. If two UI elements overlap, the later one will appear on top of the earlier one.
所有在Canvas中的UI元素,绘制顺序都与在Hierarchy中编辑的顺序一致,先出先画,后出后画,如果是两个UI元素在上面,那么Hierarchy中后添加的元素始终在先添加的上面。

如何改变绘制顺序:

原文:
To change which element appear on top of other elements, simply reorder the elements in the Hierarchy by dragging them. The order can also be controlled from scripting by using these methods on the Transform
component: SetAsFirstSibling, SetAsLastSibling, and SetSiblingIndex.
如果要更改绘制顺序,可以通过两种方式,1通过拖拽Hierarchy中元素节点的位置来改变,2可以通过Transform中提供的更改SiblingIndex的方法来修改。

渲染模式(Render Modes):
可以通过修改 Render Mode这个选项,来改变Canvas是渲染Screen Space 还是 World Space中。

1. Screen Space - Overlay
使用这种方式,会将UI元素渲染在所渲染的场景所在屏幕的最上层。如果屏幕发生了改变,那么Canvas也将自动的去发生改变并适配屏幕的变化。

2. Screen Space - Camera
与第一种类似,不同之处指定了一个相机,然后将所有UI放置在指定相机的前面的一段距离内,因此UI元素的渲染受到指定相机的限制。如果将相机设置成正交模式(Orthographic),就几乎与第一种类似,但是如果将相机设置成
透视模式(Perspective),则UI元素的透视畸变的量会受到相机视野所控制。如果屏幕的大小、分辨率以及相机的视锥体发生了改变,那么Canvas同样也会自动的去改变尺寸看,已匹配最好的效果。

3. World Space
在这种模式下,Canvas可以作为屏幕中的任意物体对象,可以通过调整RectTransform来手动修改Canvas的尺寸,并且Canvas会基于3D空间位置被渲染在其他物体的前面或者后面。如果UI作为3D空间的的一部分的话,这个方式非常有用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值