运行类Minecraft体素游戏脚本时Unity Editor频繁崩溃问题求助
问题根因
崩溃的核心原因是Chunk.cs代码中存在死循环,导致内存占用无限飙升,最终Unity Editor被系统强制终止:
- 第三层z轴循环的判断条件书写错误,原有代码写为
for (int z = 0; x < VoxelData.ChunkWidth; z++),循环条件错误判断了x的值而非z,只要x小于ChunkWidth的初始值2,这个循环就会永远执行,不断调用AddVoxelDataToChunk往列表中添加顶点、三角面数据,内存很快会被占满,最终触发崩溃。
修复方案
将Chunk.cs中Start方法里的第三层循环代码替换为正确的z轴判断即可:
// 错误写法 // for (int z = 0; x < VoxelData.ChunkWidth; z++) // 正确写法 for (int z = 0; z < VoxelData.ChunkWidth; z++)
额外优化建议
当前代码会生成体素所有方向的面,后续开发中可以增加相邻体素的存在性判断,只生成暴露在空气中的面,大幅降低Mesh的顶点数量,提升运行性能。
内容的提问来源于stack exchange,提问作者Yash Raj
相关产品推荐
相关产品推荐

