UGUI六大基础组件——Canvas

Posted on 2021-06-28 15:47  Nicela  阅读(815)  评论(0)    收藏  举报

一、Canvas组件的作用

Canvas的名字是画布,是依附在Canvas上的一个组件。UGUI中的元素之所以能够被渲染是因为有这个组件。

 

 

二、场景中允许有多个Canvas对象

分别管理不同画布的渲染方式,分辨率适应方式,一般一个Canvas即可。

三、Canvas组件的三种渲染方式

第2种方式多见于游戏中的人物面板,因为会显示一个3D的模型。

第3种多见于UI围着人物旋转,多见于VR

(1)覆盖模式

 

第一个参数开启会消耗性能以达到更好的渲染效果

第二是排序层,其值越大越后渲染,最后渲染显示在最前面

第三个是值显示的不同设备,如果有多个显示器进行渲染就可以在这进行指定。

第四个是读取与着色器相关的内容

(2)摄像机模式

 

 第一个参数如果渲染摄像机未进行赋值则与覆盖模式相同。不推荐将相机设置为主摄像机,因为设置为主摄像机不方便进行3D物体和UI界面的渲染顺序。

第二个参数是改变UI与摄像机之间的距离,数值越小说明离摄像机的距离越近。那么是否可以通过只是改变Distenrce改变距离而就把渲染摄像机设为主摄像机呢?

不可以,因为在游戏中,有很多时候3D物体还是会离摄像机很近,若用主摄像机作为渲染摄像机,那么还是容易出现3D物品离摄像机很近的状况,所以仍然不推荐使用主摄像机作为渲染摄像机。

引伸:渲染摄像机应该选择什么摄像机呢?

答:应该专门设置一个UI摄像机(新建一个摄像机,将其culling Mask设置为仅显示UI),同时将主摄像机取消对UI的渲染,在Canvas上关联的摄像机关联成UI摄像机。但是此时会发现,Game界面只会显示

UI摄像机显示的画面,这是因为UI摄像机得深度是0,而主摄像机得深度是-1,这使得UI摄像机后显示在前面。

此时又出现一个问题:如何将主摄像机得3D物品和UI摄像机得UI界面同时出现并且达到我们所希望的UI摄像机始终在主摄像机前面呢?

答:将UI摄像机的ClearFlag设置为DepthOnly就可以了,就相当于UI摄像机除开UI的部分都变成透明的了。

此时又出现一个问题:那如果在有专门的UI摄像机的情况下,就想在UI前创建一个3D物体怎么办?

如果想在UI之前现实3D物体,就需要在Canvas下创建3D物体,因为UI摄像机的深度更大,所以要在UI下创建3D物体,这样它的层级就会是UI,就可以看到了。注意,由于unity内部的某些机制,在创建物体后可能看不到物体,因为物体的大小被缩放了,只需要将该物体的Scale放大到一定倍数即可。

第三个参数是层级排序,主要作用是对于相同的摄像机模式,可以通过设置这个参数可以调整其渲染模式。新建的层级都比原来的层要高

第四个参数是也是渲染层的排序,主要是正对相同层级的

(3)3D模式

 

 

 

 一般关联主摄像机

***********************************************************************************

总结:

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3