首页 > 解决方案 > 交通模拟 - 大量对象

问题描述

我有一个包含以下列的 CSV:time, carId, x, y. 我正在编写一个脚本,它将读取 CSV 并生成汽车对象,并根据数据随时间简单地更新它们的位置。

在大约 20 分钟的时间里,大约 3500 个汽车对象必须被实例化。虽然它们不会在某个时间点都在模拟中(一旦汽车到达我的道路网络中的某些点,它就会消失),但我想为数百个汽车物体穿过的情况做好准备一下子联网。

在针对这个大型项目进行优化时,我对 Unity 及其渲染管道仍然很陌生。我知道在某些情况下最好setActive(false)使用 GameObjects 而不是destroy(),也许这就是其中之一。在 Unity 中处理这么多游戏对象时,我还应该考虑什么?

标签: c#unity3dsimulation

解决方案


这听起来像是使用对象池的绝佳机会。使用 setActive,您走在了正确的轨道上。

按照这个简短的教程:https ://unity3d.com/learn/tutorials/topics/scripting/object-pooling

它应该通过实例化/销毁大量对象来减少很多延迟。


推荐阅读