1. 程式人生 > >NGUI與3D模型顯示

NGUI與3D模型顯示

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.所以 調整一下空間的深度關係