《仙剑奇侠传6》中的卡顿掉帧问题确实很严重,大家知道为什么卡顿掉帧吗?今天小编给大家带来的是一位玩家“Nukepayload2”分享的《仙剑奇侠传6》卡顿掉帧原因分析,快跟小编一起来看看吧!
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》卡顿掉帧解决方法:点击进入 。如果你也存在这个问题,那就跟小编一起来看看吧!