快捷搜索: 王者荣耀 脱发

Unity3D OutOfMemory 内存溢出 软件崩溃 一个解决案例

我在做的是一个赛车游戏,里边元素比较多,有1000*1000的Terrain,有公路,有桥梁,有城市建筑,树木,花草。

在最开始只有Terrain和赛车的时候没有出现过内存溢出的问题,

我是用的赛车,就是标准资源包中的Car,

后面随着内容的丰富开始经常出现内存溢出,

经过检测,我发现,每次点击Car对象时,都高频率出现内存溢出,然后生成发布包时,加载场景时都很容易出现。于是我删除了Car,问题就没有再出现了。然后我换用了一些面数顶点数少的车模型来解决问题。

现在我来分析一下,为什么官方Car容易出现问题。

官方Car模型的数据如下:

Car

---SkyCarBody 34209 verts || 59706 tris uv

---SkyCarComponents 43101 verts || 64188 tris || 2 submeshes uv

---****** 3k verts || 4k tris

---****** 3k verts || 4k tris

---****** 3k verts || 4k tris

---****** 3k verts || 4k tris

---****** 3k verts || 4k tris

---****** 3k verts || 4k tris

... ...

Total: 100k verts || 130k tris

官方Car做的非常细致,总计的点数、面数其实已经非常庞大了,但是对于一款简单的赛车游戏来说,实在是太多余,其实赛车简单的外壳和轮胎就足够了。

经验分享 程序员 微信小程序 职场和发展