NGUI与3D模型显示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34696203/article/details/79150056

NGUI 与3D模型图层显示

3D图形显示在NGUI界面上

最终效果A界面-B模型-A界面

参照文章:http://blog.csdn.net/chrisfxs/article/details/50537899 和http://blog.csdn.net/k46023/article/details/52738093

原理:控制模型和NGUI界面的RenderQueue 

正文:

让你的3d模型能在摄像机里显示出来。调整UIRoot下的Camera的显示


2.添加如上图 创建两个plane  一个模型   在模型上挂载脚本

using UnityEngine;
using System.Collections;

public class ShowModel : MonoBehaviour {

    public enum RenderType
    {
        FRONT,
        BACK
    }
    public UIWidget m_target = null;
    public RenderType m_type = RenderType.FRONT;
    Renderer[] _renderers;
    int _lastQueue = 0;
    void Start()
    {
        _renderers = GetComponentsInChildren<Renderer>();
    }
    void FixedUpdate()
    {
        if (m_target == null || m_target.drawCall == null)
            return;
        int queue = m_target.drawCall.renderQueue;
        queue += m_type == RenderType.FRONT ? 1 : -1;
        if (_lastQueue != queue)
        {
            _lastQueue = queue;
            foreach (Renderer r in _renderers)
            {
                r.material.renderQueue = _lastQueue;
            }
        }
    }
}
3.让3D物体的 RenderQueue 处于两个Plane界面之间,比如我的PanelDown的RenderQueue是1000,PanelUP的是1005,两个UIPanel的RenderQueue值间隔一些,空出几个值用来设置给模型或粒子特效,很简单。,我们只是利用RenderQueue控制了渲染顺序,但是空间的深度关系还是在影响着在屏幕上显示的先后关系

4.所以 调整一下空间的深度关系



猜你喜欢

转载自blog.csdn.net/qq_34696203/article/details/79150056