NGUI與3D模型顯示
阿新 • • 發佈:2019-01-08
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 一個模型 在模型上掛載指令碼
3.讓3D物體的 RenderQueue 處於兩個Plane介面之間,比如我的PanelDown的RenderQueue是1000,PanelUP的是1005,兩個UIPanel的RenderQueue值間隔一些,空出幾個值用來設定給模型或粒子特效,很簡單。,我們只是利用RenderQueue控制了渲染順序,但是空間的深度關係還是在影響著在螢幕上顯示的先後關係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; } } } }
4.所以 調整一下空間的深度關係