效果如下:
(这是前几天师父发给我的效果图,我问他怎么实现的,笑而不语...)
做个小demo,尽解其招!
首先打开空项目,导入NGUI。打开一个示例,我选的是example 7。然后给ScrollView中的第一个添加一个粒子特效。
调整好父子关系和缩放以后再调整所在层级,确保NGUI的摄像机会渲染粒子所在层级,会发现游戏界面中看不到这个粒子,继续调整粒子的sort order,调到2的时候发现游戏画面中出现了这个粒子。
第一步准备工作完成。看效果:
发现NGUI的panel的遮挡对于粒子特效并没有起什么作用。调了半天发现并没有什么卵用。
进入正题,怎样限制住特效的显示范围。
道理很简单,添加一个遮罩层,我使用的是2DSprite,就是使用ColorMask。ColorMask设置为0,即忽略所有RGB颜色。然后设置渲染顺序,保证
底层<遮罩<特效
还要保证与摄像机的距离关系
底层<特效<遮罩
仅此而已!
完活。
上效果:
道理很简单,就不上代码了。有效代码就那么一两行。关键就是保证好渲染顺序。
如果看不懂,那么你需要去补充一下渲染队列的知识,在这个demo里还要了解控制渲染顺序的各个层级,比如摄像机的depth,order layer,order sort...