• 记录一次工作问题总结——关于游戏物体渲染顺序


      目前的一个项目中,有这么一个需求:经验进度条的显示,进度条的最右端加一个发光的特效,(为了看起来好看吧)

      但是在生成该特效之后,效果不尽人意(实际上是不尽策划意),后面检查发现,这个特效的显示不对,其中一个部分的粒子特效被不明物体遮挡住了(我也不知道是什么东西啊,反正就是挡住了)

    然后我就开始了我检查bug之旅!!

      首先检查该特效的 depth:不管我如何的调整的 depth ,发现都看不到这个特效,此时我陷入了深深的沉思,(既然 depth 不是影响这个的问题,那么就肯定不是已经不是渲染的问题了,因为这个项目大部分用的都是用的主摄像机,在同一个摄像机下,影响显示顺序的就是深度,深度越大的越接近玩家),那么是什么问题呢?

      接着我检查一遍代码,通过查找该特效的 Position 和是否真的正确生成,最后发现真的是一点毛病都没有,为此头上的头发都掉了无数根!

      最后我开启了我的无敌检查大法!去和别的面板进行比较,嘻嘻嘻!

      经过一番比较,我真的是惊呆了,原来是因为我的系统面板的 Scale 值 中的 Z 值被放大了N倍,意味这这个面板的 Z 轴被拉长了无数倍,也就是说,别应该正确显示的特效特么的被塞进了这个面板的身体里!我是真的无语了!

    最后经过这场艰苦的战役!学到了几个知识点

      渲染层级中拥有最大的优先级的是 Camera Layer :不同的摄像机,会根据深度的的不同渲染的顺序就不一样,深度越深越接近用户,也就是说深度越深,渲染队列越后

    然后是 Sorting Layer :在相同摄像机下,相同深度下,这个同样影响渲染的优先级,但是这个选项通常只有一个默认层 default ,需要添加层,越后面的层优先级越大,会覆盖掉前面的层

    最后是 order in Layer :在上面的东西都相同的情况下,数字越大优先级越大,也就是数字越大越接近用户

    至此完毕!

  • 相关阅读:
    go学习笔记day19
    Mac11系统 SIP保护 如何在根目录创建data文件夹
    vue首页加载文件过多,去掉预加载
    NPM更换国内源
    autoCAD2007 图层
    读《现代JavaScript》笔记①——Map and Set(映射和集合)
    pubsubjs发布订阅
    vuecli中配置less并使用全局变量
    React组件通讯
    v6版reactrouterdom的改变
  • 原文地址:https://www.cnblogs.com/CHANGKTITI/p/12168716.html
Copyright © 2020-2023  润新知