qiang

49277
文章
26015576
总阅读

《仙剑奇侠传6》卡顿掉帧原因分析 为什么卡顿掉帧

qiang 2018-12-03 13:41 598 举报

 1.一些调试相关的功能没关闭

  首先,我们可以找到debuglog.txt,而且玩一会儿就变大。这说明在进行一些方法时有写文件操作。

  再看看脚本。我找到了几处没有编译器优化的字符串操作。如果是Release编译并且打开优化,字符串操作会有一些特殊的代替,比如比较时用一种Hash值比较。多重条件的语句会改变含义但不影响结果。比如

  !A && !B变为 !(A || B)。但是我找不到这些。反而找到了死循环检查,不必要的空值检查之类的不应该发售的东西。尤其是那个死循环检查,看起来并不简洁。

  2.对象的序列化问题

  一些对象用的是Soap序列化而不是穹之扉用的UnityRaw。Soap序列化是过时的,读写量大,储存的对象类型有限。使用Soap会影响性能。

  3.资源文件格式选择问题

  仙6比穹之扉加载慢得多,原因除了文件比较复杂还有很多资源用了UnityWeb资源格式,这种格式是带压缩的,加载时有较高的CPU使用率和内存使用率。

  4.线程模型使用不当

  UI线程为STAThread不代表处理数据不能开线程。很多时候CPU使用率并不高,但是一个CPU核心满负荷运行。这会导致电脑不全力工作。应当在适当的地方加入并行计算。如加载界面,UI线程异步等待多个平均分配的加载任务,这样加载动画不会卡也不会加载太慢。

  5.模型问题

  这次建模有些诡异,不该画的地方也画得很仔细。比如卡Bug把明绣裙子卡没之后看到贴图精细发光材质的

  内内,卡巨大化Bug后看到了贴图细腻的大腿。我个人认为把鱼画的粗略一些是正确的。最好向前几代那样,看不到或者不应该看清的地方画简略。

  碰撞检测可能有些滥用。有些地方不作弊是不可能与主角模型重叠的,但是还是有人物与它们的碰撞检测。

  小编还给大家带来了《仙剑奇侠传6》卡顿掉帧解决方法:点击进入。如果你也存在这个问题,那就跟小编一起来看看吧!


qiang 发表于5年前

声明:该文观点仅代表用户本人,酷乐米仅提供信息存储空间服务,文中素材如有侵权请联系删除。


0 人点赞

记得评论+点赞哦

留言评价