23.UGUI进阶-模型和粒子显示在UI之前
23.1 知识点
模型显示在UI之前
直接用摄像机渲染3D物体
Canvas的渲染模式只要不是覆盖模式。摄像机模式和世界(3D)模式都可以让模型显示在UI之前(Z轴在UI元素之前即可)。
注意:
- 建议使用专门的摄像机渲染UI相关内容。
- UI面板上的3D物体建议也用UI摄像机进行渲染。
实现方法:
- 设置一个专门渲染UI层的摄像机,让主摄像机不渲染UI层。UI摄像机关联Canvas。Canvas的渲染模式设置成摄像机模式。
- 直接在Canvas上创建Cube,注意调整缩放尺寸。层级设置为UI层。通过调整z轴可以控制其是否显示在UI元素的前面。
这种方法适用于需要将多个模型显示在UI前面的情况。
将3D物体渲染在图片上,通过图片显示
专门使用一个摄像机渲染3D模型,将其渲染内容输出到 Render Texture 上,然后再将渲染的图显示在UI上。这种方式不管Canvas的渲染模式是哪种都可以使用。
实现步骤:
创建一个模型层。在创建一个摄像机专门渲染模型层,改成纯色模式。
创建一个立方体,设置为模型层
创建RenderTexture渲染器纹理,关联模型摄像机
Canvas下创建RawImage,因为RawImage可以关联任意纹理。关联刚刚创建的RenderTexture渲染器纹理。这样RawImage就显示的是模型摄像机渲染的内容了。
最好用于只有一个模型显示在前面的时候,不然可能要创建多个摄像机渲染
粒子特效显示在UI之前
粒子特效的显示和3D物体类似。
注意:在摄像机模式下时,可以在粒子组件的Renderer相关参数中改变排序层 让粒子特效始终显示在其之前不受Z轴影响
和3D物体显示在UI前的方法一相似
23.2 知识点代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson23_UGUI进阶_模型和粒子显示在UI之前 : MonoBehaviour
{
void Start()
{
#region 知识点一 模型显示在UI之前
#region 方法一:直接用摄像机渲染3D物体
//Canvas的渲染模式要不是覆盖模式
//摄像机模式 和 世界(3D)模式都可以让模型显示在UI之前(Z轴在UI元素之前即可)
//注意:
//1.摄像机模式时建议用专门的摄像机渲染UI相关
//2.面板上的3D物体建议也用UI摄像机进行渲染
#endregion
#region 方法二:将3D物体渲染在图片上,通过图片显示
//专门使用一个摄像机渲染3D模型,将其渲染内容输出到Render Texture上
//类似小地图的制作方式
//再将渲染的图显示在UI上
//该方式 不管Canvas的渲染模式是哪种都可以使用
#endregion
#endregion
#region 知识点二 粒子特效显示在UI之前
//粒子特效的显示和3D物体类似
//注意点:
//在摄像机模式下时
//可以在粒子组件的Renderer相关参数中改变排序层 让粒子特效始终显示在其之前不受Z轴影响
#endregion
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com