Unity3D Profiler为我提供了主要与垃圾收集有关的尖峰。在下面的截图中,三个红色尖峰代表我在游戏中的三个档位。这些停顿中的每一个都是 100+ms,大部分时间都花在TrackDependencies
.
根据Unity 指令,我尝试将其添加到我的代码中:
if (Time.frameCount % 30 == 0)
{
System.GC.Collect();
}
这没有帮助。我仍然有尖峰,它们仍然需要 100 多毫秒。到底发生了什么,我可以做些什么来优化我的游戏?
PS:
我在我的游戏中动态地创建和销毁很多GameObject
s。这会是个问题吗?
我没有在循环或数组中将字符串连接作为返回值,如 post 中所述。