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
 
            