23.模型和粒子显示在UI前

23.UGUI进阶-模型和粒子显示在UI之前


23.1 知识点

模型显示在UI之前

直接用摄像机渲染3D物体

Canvas的渲染模式只要不是覆盖模式。摄像机模式和世界(3D)模式都可以让模型显示在UI之前(Z轴在UI元素之前即可)。

注意:

  • 建议使用专门的摄像机渲染UI相关内容。
  • UI面板上的3D物体建议也用UI摄像机进行渲染。

实现方法:

  1. 设置一个专门渲染UI层的摄像机,让主摄像机不渲染UI层。UI摄像机关联Canvas。Canvas的渲染模式设置成摄像机模式。
  2. 直接在Canvas上创建Cube,注意调整缩放尺寸。层级设置为UI层。通过调整z轴可以控制其是否显示在UI元素的前面。

这种方法适用于需要将多个模型显示在UI前面的情况。

将3D物体渲染在图片上,通过图片显示

专门使用一个摄像机渲染3D模型,将其渲染内容输出到 Render Texture 上,然后再将渲染的图显示在UI上。这种方式不管Canvas的渲染模式是哪种都可以使用。

实现步骤:

  1. 创建一个模型层。在创建一个摄像机专门渲染模型层,改成纯色模式。

  2. 创建一个立方体,设置为模型层

  3. 创建RenderTexture渲染器纹理,关联模型摄像机


  4. Canvas下创建RawImage,因为RawImage可以关联任意纹理。关联刚刚创建的RenderTexture渲染器纹理。这样RawImage就显示的是模型摄像机渲染的内容了。

  5. 最好用于只有一个模型显示在前面的时候,不然可能要创建多个摄像机渲染

粒子特效显示在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

×

喜欢就点赞,疼爱就打赏