最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
NGUI 无法显示粒子效果
最近在制作粒子特效时,遇到了粒子效果总是被 UI 遮挡的问题。下面将为大家详细介绍该问题的解决方法。
问题原因
粒子系统的渲染顺序默认值为 3000,而 NGUI 的渲染顺序默认也是从 3000 开始。当存在嵌套的 Panel 或者 Depth 值更高的 Panel 时,GUI 的渲染顺序会高于 3000,从而导致粒子效果被 UI 遮挡。
解决方法
方法一:修改 NGUI 中 UIPanel 脚本的默认渲染队列
可以通过修改 NGUI 里 UIPanel 脚本中的默认 RenderQueue,将其调整到 3000 以下,这样就能避免 UI 遮挡粒子特效。若某些窗口需要显示在特效之上,可在检视面板中将该窗口的 Renderer Q 选项设置为 “Start At”,并将值设为 3000 以上。不过此方法受 NGUI 版本影响,以我的 NGUI 3.1.6 版本为例,可直接进行调整。
方法二:使用额外摄像机显示特效
可以使用另外一个摄像机专门来显示特效。但这种方法存在一定弊端,在 UI 窗口相互切换时,特效摄像机的控制会比较困难。
方法三:修改粒子特效 Shader 中的渲染队列值
直接修改粒子特效的 Shader 中的 RendererQueue 值,也能够解决粒子效果被 UI 遮挡的问题。