游戏对象】UGUI的三种渲染模式是什么?都有什么作用?

2020-06-05 09:31发布

7条回答
老杜
2楼 · 2020-06-05 10:02

第一种:Screen Space-Overlay(屏幕空间,覆盖模式)所有的UI元素置于屏幕的最上层
第二种:Screen Space-Camera(屏幕空间,摄影机模式)画布看起来绘制在一个与摄影机固定距离的平面上。所有的 UI 元素都由该摄影机渲染,因此摄影机的设置会影响到 UI 画面。要是只有2dUI其实和第一中区别不大。此种模式可以用来实现在 UI 上显示 3D 模型的需求,比如很多 MMO 游戏中的查看人物装备的界面
第三种:World-Space(世界空间模式)画布被视为与场景中其他普通游戏对象性质相同的类似于一张面片(Plane)的游戏物体。这种模式可以用来实现跟随人物移动的血条或者名称。

听雨
3楼 · 2020-06-05 10:02

UGUI的渲染模式其实说到底就是UGUI中Canvas的渲染模式, 我们通过设置Canvas的RenderMode值来设置渲染模式;

UGUI的三种渲染模式分别是:Screen Space-Overlay、Screen-Space-Camera、World Space;

Screen Space-Overlay模式

不需要UI摄像机, Canvas画布将会一直出现在摄像机的最前面,其他所有物体都会被遮挡;

Canvas大小与位置不可改变, 始终与屏幕一样大。

当然如果没有主摄像机,画布也会显示出来,效果图如下:

image.png


Screen Space-Camera模式 : 

需要一个UI 摄像机, 支持UI前方显示3D物体

Canvas大小不可改变, 始终与屏幕一样大。

在该模式下, 通过设置Plane Distance来决定Canvas与摄像机的距离;

如果3D物体在摄像机与Canvas之间, 则会被显示出来, 否则可能会被UI遮挡

image.png

World Space模式:

3D UI 模式, UI控件为3D场景中的一部分,

可以把Canvas当做3D物体对其进行平移、缩放、旋转, 以及设置为其他物体的子物体

image.png




Ross
4楼 · 2020-06-05 13:40

1.Screen Space-Overlay模式


  Screen Space-Overlay(屏幕控件-覆盖模式)的画布会填满整个屏幕空间,并将画布下面的所有的UI元素置于屏幕的最上层,或者说画布的画面永远“覆盖”其他普通的3D画面,如果屏幕尺寸被改变,画布将自动改变尺寸来匹配屏幕。


        Screen Space-Overlay模式的画布有Pixel Perfect和Sort Layer两个参数:


  (1)Pixel Perfect:只有RenderMode为Screen类型时才有的选项。使UI元素像素对应,效果就是边缘清晰不模糊。


  (2)Sort Layer: Sort Layer是UGUI专用的设置,用来指示画布的深度。


  2.Screen Space-Camera模式


  Screen Space-Camera(屏幕空间-摄影机模式)和Screen Space-Overlay模式类似,画布也是填满整个屏幕空间,如果屏幕尺寸改变,画布也会自动改变尺寸来匹配屏幕。所不同的是,在该模式下,画布会被放置到摄影机前方。在这种渲染模式下,画布看起来 绘制在一个与摄影机固定距离的平面上。所有的UI元素都由该摄影机渲染,因此摄影机的设置会影响到UI画面。在此模式下,UI元素是由perspective也就是视角设定的,视角广度由Filed of View设置。


     它比Screen Space-Overlay模式的画布多了下面几个参数:


  (1)Render Camera:渲染摄像机


  (2)Plane Distance:画布距离摄像机的距离


  (3)Sorting Layer: Sorting Layer是UGUI专用的设置,用来指示画布的深度。可以通过点击该栏的选项,在下拉菜单中点击“Add Sorting Layer”按钮进入标签和层的设置界面,或者点击导航菜单->edit->Project Settings->Tags and Layers进入该页面。


  可以点击“+”添加Layer,或者点击“-”删除Layer。画布所使用的Sorting Layer越排在下面,显示的优先级也就越高。


  (4)Order in Layer:在相同的Sort Layer下的画布显示先后顺序。数字越高,显示的优先级也就越高。


  3.World Space


  World Space即世界控件模式。在此模式下,画布被视为与场景中其他普通游戏对象性质相同的类似于一张面片(Plane)的游戏物体。画布的尺寸可以通过RectTransform设置,所有的UI元素可能位于普通3D物体的前面或者后面显示。当UI为场景的一部分时,   可以使用这个模式。


  它有一个单独的参数Event Camera,用来指定接受事件的摄像机,可以通过画布上的GraphicRaycaster组件发射射线产生事件。


通过下面的表格可以对比一下三种渲染模式的区别:

image.png

————————————————


原文链接:https://blog.csdn.net/dxj467822057/java/article/details/80190249


小狮子
5楼 · 2020-06-05 15:35

1:Screen Space-Overlay:这种模式层级视图中不需要任何的摄像机,且UI出现在所有摄像机的最前面。

2:Screen Space-Camera:这种模式需要绑定一个UICamrea,它支持UI前面显示3D对象和粒子系统。

3:World Space:这种模式,UI和3d对象完全一样。



蜗牛
6楼 · 2020-06-09 11:47

第一种:Screen Space-Overlay(屏幕空间,覆盖模式)

该模式下的画布会填满整个屏幕空间,并将画布下面的所有的UI元素置于屏幕的最上层,或者说画布的画面永远“覆盖”其他普通的3D画面,如果屏幕尺寸被改变,画布将自动改变尺寸来匹配屏幕。

第二种:Screen Space-Camera(屏幕空间,摄影机模式)

Screen Space-Camera 和 Screen Space-Overlay 模式类似,画布也是填满整个屏幕空间,如果屏幕尺寸改变,画布也会自动改变尺寸来匹配屏幕。

所不同的是,在该模式下,画布会被放置到摄影机前方。在这种渲染模式下,画布看起来绘制在一个与摄影机固定距离的平面上。所有的 UI 元素都由该摄影机渲染,因此摄影机的设置会影响到 UI 画面。

在此模式下,UI 元素是由 perspective 也就是视角设定的,视角广度由 Filed of View 设置。

实际用途

这种模式可以用来实现在 UI 上显示 3D 模型的需求,比如很多 MMO 游戏中的查看人物装备的界面,可能屏幕的左侧有一个运动的 3D 人物,左侧是一些 UI 元素。通过设置 Screen Space-Camera 模式就可以实现上述的需求(比如玩梦幻西游的时候,点龙太子查看属性,此时你就可以在 UI 界面转动龙太子)

World-Space(世界空间模式)

在此模式下,画布被视为与场景中其他普通游戏对象性质相同的类似于一张面片(Plane)的游戏物体。

画布的尺寸可以通过 RectTransform 设置,所有的 UI 元素可能位于普通 3D 物体的前面或者后面显示。当 UI 为场景的一部分时,可以使用这个模式。

该模式下可以拖动更改,旋转 Canvas 的位置,前两种模式下的 Canvas 不可移动。


Transform
7楼 · 2020-06-11 00:35

Screen Space - Overlay

这个模式就好像给Camera最上层蒙上了一个图层,所有的UI显示在这个图层上。特点:

1、无法设置相机,无法将UI于特效区分卡。

2、无其他特殊需求时,这个模式的性能是最优的。

3、所有的UI无法通过改变其Z轴来改变其遮挡顺序,只能通过调整transform在Hierarchy的顺序来改变。

Screen Space - Camera

可以设置独立的UI相机,可以分离UI与特效的显示。粒子系统等不会被UI遮挡。 

World Space

将UI作为游戏中的物体来处理。


梅向南
8楼 · 2020-06-17 10:59

第一种:Screen Space-Overlay,可让UI界面始终保持在场景的最上方,也是用的最多的渲染模式,比如登陆界面,战斗界面都需要把UI至于屏幕最上方,只要这样才可以通过界面和游戏进行交互。

第二种:Screen Space-Camera,UI和相机之间会有一个距离,在两者之间可放置一个3D模型,这样3D模型就在UI界面的上方显示了,比如刺激战场的主界面。

第三种:可以把UI界面当做一个3D物体来看待,常用于VR游戏的界面开发,或者人物头顶血条的制作等。

相关问题推荐

没有解决我的问题,去提问