NGUI中使用U3D粒子特效
2015-07-04 14:32
399 查看
using UnityEngine; using System.Collections; /// <summary> /// This is a container to deal with the particles render by control the render queue. /// </summary> [ExecuteInEditMode] public class UIParticles : MonoBehaviour { private const float UPDATE_RENDER_TIME = 0.2f; private float lastTime = 0f; private Renderer[] rendererArray = null; private bool isWidgetOK = false; private bool isRendererArrayOK = false; private Renderer tempMeshRenderer = null; public bool isExplicit = false; public int RenderQueue = 3000; public UIWidget parentWidget = null; public bool IsForward = true; void OnDestroy() { rendererArray = null; parentWidget = null; } void LateUpdate() { lastTime += Time.deltaTime; if (lastTime < UPDATE_RENDER_TIME) return; lastTime = -Random.Range(0, UPDATE_RENDER_TIME); if (parentWidget == null) { parentWidget = NGUITools.FindInParents<UIWidget>(this.gameObject); } if (rendererArray == null || rendererArray.Length == 0) { rendererArray = this.GetComponentsInChildren<Renderer>(true); } isWidgetOK = parentWidget != null && parentWidget.drawCall != null; isRendererArrayOK = rendererArray != null && rendererArray.Length > 0; if ((isWidgetOK || isExplicit) && (isRendererArrayOK)) { OnChangeRenderQueue(); } } void OnChangeRenderQueue() { int curRenderQueue = (isExplicit || !isWidgetOK) ? RenderQueue : parentWidget.drawCall.finalRenderQueue; if (IsForward) curRenderQueue += 1; else curRenderQueue -= 1; if (curRenderQueue != RenderQueue) { RenderQueue = curRenderQueue; for (int i = 0; i != rendererArray.Length; ++i) { tempMeshRenderer = rendererArray[i]; if (tempMeshRenderer != null) { #if UNITY_EDITOR tempMeshRenderer.sharedMaterial.renderQueue = RenderQueue; #else tempMeshRenderer.material.renderQueue = RenderQueue; #endif } } } } }
一般NGUI结合U3D粒子特效结合使用有两种方式,一种使用多个摄像机,一种改变渲染队列。
通过改变渲染队列实现。
相关文章推荐
- Leetcode 187 Repeated DNA Sequences
- Dynamics CRM 2015 Update 1 系列(5): 获取最近更新的数据 - RetrieveEntityRequest
- UVa----------1594(Ducci Sequence)
- 【Android UI】获取ListView默认分割线
- 华为G520联通版刷机包 基于MIUI CM11新 平稳 稳定
- miui6如何开启开发者模式
- configure.ac:20: error: Autoconf version 2.65 or higher is required
- UIView的layoutSubviews和drawRect方法何时调用
- uedit学习小结
- UIScrollView 期本使用方法
- HDOJ 5063 Operation the Sequence
- (转载)UITableView使用详解
- UIView设置layer的时候,layer外四个角任然出现图片的解决办法
- (转)UILabel的详细使用
- Win10 Build 10164泄露 已开始始接受第一阶段测试
- UINavigationController的使用
- Win10 Mobile Build 10158截图曝光:视频拍摄更强
- UI基础:UI中类的继承关系图,最基本的视图分析
- U盘启动盘制作工具分享2 :又是一个 大白菜 UEF版
- How to Quickly Pick up a Project