3D UI 交互和 摄像机渲染控制

1 3D UI 交互

 将 精灵直接拖入3D场景

Spriter render       2D ui 放入3D场景中自动系统自动添加该组件


 BOX collider组件    射线检测

 Button 组件        变色控制    点击事件

Event Trigger 组件   添加各种触发控制,鼠标进入….离开。等等


要显示的摄像头 Main Camera 添加PhysicsRaycaster  组件

 

之后鼠标就可以出发3D场景中的UI 

2 如何让3D中的UI 标签总显示在模型的前面(无论位置如何调整)

1 为3D 标签添加标签层 


设置标签层为BQ 

2 添加俩个一样的摄像机设为父子关系


父相机设为 Depth Only

Culling Mask   只渲染标签  

Depth   设为1   

子相机根据需求设为Solid Color 或SKY box

 Culling Mask    设为  Mixed    不渲染 BQ层  

 Depth 设为 0             设为5 就不渲染了(其实是看不见了)      必须小于1 


注意: 标签层相机必须大于要优先渲染的物体 ,

       且为 depth Only   其他模式会看不见其他相机的物体

       当场景只有一个相机的时候  

         Depth OnlY  移动物体时---出现影像残留          don’t Clare  也会

       当场景有俩个相机的时候

       Depth OnlY  将不会出现物体影像残留,一切正常    don’t Clare  也是一样


摄像机的四种模式和深度理解:

 每个相机在渲染时会存储颜色和深度信息。屏幕的未绘制部分是空的,默认情况下会显示天空盒。当你使用多个相机时,每一个都将自己的颜色和深度信息存储在缓冲区中,还将积累大量的每个相机的渲染数据。当场景中的任何特定相机进行渲染时,你可以设定清除标记以清除缓冲区信息的不同集合。可以通过下面四个选项之一来完成:

1.Skybox 天空盒

   这是默认设置。在屏幕上空的部分将显示当前相机的天空盒。如果当前相机没有设置天空盒,它会默认使用渲染设置(在Edit->Render Settings里)中选择的天空盒。然后它将退回使用背景颜色。另外天空盒组件可以添加到相机上。如果你想创建一个新的天空盒,您可以使用本指南

2.Solid Color 纯色

    屏幕上的任何空的部分将显示当前相机的背景颜色。

3.Depth Only 仅深度

如果你想绘制一个玩家的枪而不让它在环境内部得到裁剪,你要设置一个深度为0的相机来绘制环境,还要另一个深度为1的相机单独绘制武器。该武器相机的清除标记应设置为仅深度。这将保持环境的图形显示在屏幕上,但会丢弃所有关于每个对象在三维空间中的位置的信息。当枪被绘制出来,不透明的部分将完全覆盖任何已绘制的事物,而不管枪到墙之间如何接近。(这部分看起来很费劲)---------------------也就是标签的设置

4.Don’t Clear 不清除

该模式不清除任何颜色或深度缓存。其结果是,每帧绘制在下一帧之上,造成涂片效果。这不是用于游戏的典型方式,最好是与自定义着色器一起使用。

Culling Mask 剔除遮罩

剔除遮罩使用层有选择地渲染一组对象。有关使用层的信息可以在这里找到。

通常好的做法,是把用户界面放到不同的层,然后用一个独立相机单独渲染UI层。

为了使UI显示在其他相机视角的顶部,你还需要设置清除标记为Depth only,并确保UI相机的深度比其他相机高。

 同样的,如果是制作游戏,你可以创建一个界面摄像机,单独渲染界面,而别的摄像机将渲染场景。你只需要添加UI图层,将所有的界面物体的Layer设置为UI,UI摄像机的Culling Mask也只勾选UI层。

Depth 深度

 首先在Unity场景中创建两个摄像机,分别命名为camera1camera2

           再在场景中创建一个cube和Sphere作为摄像机的拍摄物体;并让两摄像机都能够拍摄到两个物体。

           接着设置camera1的Depth为0,camera2的Depth为1;

           你会发现Game窗口将只显示camera2拍摄到的画面;

   可见摄像机Depth属性设置相机绘图顺序,具有较大值的相机将被绘制在具有较小值的相机的上面,换言之,一个深度为1的相机将绘制在一个深度为0的相机之上。

摄像机Display的理解:


Display 1   -----窗空置显示这个Display1演示下的物体

Display 2   ------窗空置显示这个Display2演示下的物体

一个Game视图中只能显示一个Display

Game 视图中可以选择的去显示哪个 Display

可以选择右键Game 视图去 Add game 窗口 同时显示俩个Game 窗口



http://blog.csdn.net/Fenglele_Fans/article/details/77842546


猜你喜欢

转载自blog.csdn.net/july_unity/article/details/79406501