方法一:
场景中同时使用2个相机,UI相机渲染UI输出到屏幕,3D相机将3D物体渲染到RenderTexture,也显示在UI,通过UI输出到屏幕。
使用RenderTexture。RawImage作为UI元素可随意调节显示层级(即UI子物体先后顺序),适合将3D物体投影到局部UI界面,可以将3D物体显示在不同的UI层级之间,层级显示更加灵活。
1. Project中创建RenderTexture;
2. UI新建RawImage,设置Texture为RenderTexture;
3. 3D物体Cube标记Layer为"Cube";
4. 新建相机,设置ClearFlags、CullingMask,设置TargetTexture为RenderTexture。
方法二:
场景中同时使用2个相机,UI相机渲染UI输出到屏幕,3D相机渲染3D物体也输出到屏幕。
第二个相机渲染指定的3D物体层级,适合将3D场景作为UI界面的背景或前景使用,3D物体只能显示在UI之前或之后,不能显示在UI层级之间。
1. 3D物体标记Layer;
2. 新建相机,设置CullingMask,只渲染3D Layer。
- Clear Flags:确定将清除屏幕的哪些部分。通过设置可以使用多个摄像机来绘制不同游戏元素。每个摄像机在渲染其视图时都会存储颜色和深度信息。屏幕中未绘制的部分为空,默认情况下将显示天空盒。使用多个摄像机时,每个摄像机都会在缓冲区中存储自己的颜色和深度信息,随着每个摄像机渲染而累积越来越多数据。
- Skybox:默认设置。屏幕的任何空白部分都将显示当前摄像机的天空盒。
- Solid color:屏幕的任何空白部分都将显示当前摄像机的背景颜色。
- Depth only:通过Culling Mask设置相机需要绘制的物体,然后通过Depth深度值,忽略物体的3D世界相对位置,将该相机绘制的图像显示在其他相机的上面或下面。
- Don’t clear:此模式不会清除颜色或深度缓冲区。结果是将每帧绘制在下一帧之上,从而产生涂抹效果。
- Culling Mask:包含或忽略要由摄像机渲染的对象层。
方法三:
1. 将3D物体的层级Layer改为UI,当做UI元素,使用UI相机直接渲染3D物体。
2. UI Canvas不同的相机渲染方式,会影响3D物体的比例,需要调整3D物体的缩放和方向,才能在UI相机中正常显示。