您的位置:首页 > 移动开发 > Unity3D

Canvas——画布

2015-06-12 10:49 330 查看
Canvas是一个所有UI元素都应该在它里面的区域。Canvas是一个带有Canvas组件的GameObject,同时,所有的UI元素必须是一个Canvas的子物体。

创建一个新的UI元素例如Image,点击菜单里的GameObject > UI > Image,如果场景中不存在一个Canvas,将会自动的创建一个Canvas。这个UI元素将作为该画布的子物体被创建。

Canvas的区域在场景视图中显示为一个矩形框。这使得定位UI元素非常方便,因为不需要使游戏视图随时可视。

元素绘制顺序

Canvas中的UI元素按它们在Hierarchy视图中的排列顺序绘制。排在最上面的子物体将会最先绘制,排在第二的会在其之后,其它的以此类推......如果两个元素重叠,排在下面的那一个将会覆盖排在上面的那一个。

如果要使一个元素显示在其它元素的上面,只需要简单的在Heirarchy视图拖动改变元素的排列顺序。这个顺序也可以通过脚本控制去改变,使用Tranfrom组件的这些方法:SetAsFirstSibling,SetAsLastSibling和SetSiblingIndex。

渲染模式

Canvas有一个渲染模式设置,用来使它在屏幕空间或世界空间渲染

屏幕空间 - 覆盖

这种渲染模式把UI元素放在屏幕上并渲染到场景的最顶层。如果屏幕改变了大小或改变了分辨率,画布将会自动改变大小以适应。



屏幕空间 - 摄相机

它与屏幕空间 - 覆盖模式类似,但是在这种渲染模式中,Canvas以一个指定的距离被放置在一个特殊的摄相机前面。UI元素都通过这个摄相机来渲染,这意味着这个摄相机的设置会影响UI的显示。如果这个摄相机被设置为透视的,UI元素将会被以透视视角渲染,同时透视形变的程度可以被摄相机的Field of View控制。如果屏幕改变大小或分辨率,或者摄相机的视截体变化,Canvas也将会自动改变大小以适应。



世界空间

在这个渲染模式,Canvas看起来和场景中其它对象一样,Canvas的大小可以通过它的Rect Tranform手动设置,同时,UI元素将会被渲染到其它物体的前面或后面,基于场景的3D布局。这对于UI是世界中的一部分的情况很有用,这也被称为“叙事化界面”。

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