目前的一个项目中,有这么一个需求:经验进度条的显示,进度条的最右端加一个发光的特效,(为了看起来好看吧)
但是在生成该特效之后,效果不尽人意(实际上是不尽策划意),后面检查发现,这个特效的显示不对,其中一个部分的粒子特效被不明物体遮挡住了(我也不知道是什么东西啊,反正就是挡住了)
然后我就开始了我检查bug之旅!!
首先检查该特效的 depth:不管我如何的调整的 depth ,发现都看不到这个特效,此时我陷入了深深的沉思,(既然 depth 不是影响这个的问题,那么就肯定不是已经不是渲染的问题了,因为这个项目大部分用的都是用的主摄像机,在同一个摄像机下,影响显示顺序的就是深度,深度越大的越接近玩家),那么是什么问题呢?
接着我检查一遍代码,通过查找该特效的 Position 和是否真的正确生成,最后发现真的是一点毛病都没有,为此头上的头发都掉了无数根!
最后我开启了我的无敌检查大法!去和别的面板进行比较,嘻嘻嘻!
经过一番比较,我真的是惊呆了,原来是因为我的系统面板的 Scale 值 中的 Z 值被放大了N倍,意味这这个面板的 Z 轴被拉长了无数倍,也就是说,别应该正确显示的特效特么的被塞进了这个面板的身体里!我是真的无语了!
最后经过这场艰苦的战役!学到了几个知识点
渲染层级中拥有最大的优先级的是 Camera Layer :不同的摄像机,会根据深度的的不同渲染的顺序就不一样,深度越深越接近用户,也就是说深度越深,渲染队列越后
然后是 Sorting Layer :在相同摄像机下,相同深度下,这个同样影响渲染的优先级,但是这个选项通常只有一个默认层 default ,需要添加层,越后面的层优先级越大,会覆盖掉前面的层
最后是 order in Layer :在上面的东西都相同的情况下,数字越大优先级越大,也就是数字越大越接近用户
至此完毕!