c# - 交通模拟 - 大量对象
问题描述
我有一个包含以下列的 CSV:time
, carId
, x
, y
. 我正在编写一个脚本,它将读取 CSV 并生成汽车对象,并根据数据随时间简单地更新它们的位置。
在大约 20 分钟的时间里,大约 3500 个汽车对象必须被实例化。虽然它们不会在某个时间点都在模拟中(一旦汽车到达我的道路网络中的某些点,它就会消失),但我想为数百个汽车物体穿过的情况做好准备一下子联网。
在针对这个大型项目进行优化时,我对 Unity 及其渲染管道仍然很陌生。我知道在某些情况下最好setActive(false)
使用 GameObjects 而不是destroy()
,也许这就是其中之一。在 Unity 中处理这么多游戏对象时,我还应该考虑什么?
解决方案
这听起来像是使用对象池的绝佳机会。使用 setActive,您走在了正确的轨道上。
按照这个简短的教程:https ://unity3d.com/learn/tutorials/topics/scripting/object-pooling
它应该通过实例化/销毁大量对象来减少很多延迟。
推荐阅读
- bash - 如何在不同行上的多个模式匹配后替换第 n 行上的单词?
- c++ - C++ 不存在合适的构造函数来转换
- ios - 访问保存在 Swift 会话中的字典索引
- npm - 无法旁加载 Outlook 加载项
- regex - Google Analytics 将根页面与查询参数匹配
- random - Google Cloud Platform - 控制台中的消息排序与日志
- php - php mysql 分页活动类
- excel - 出现任何错误时仅发送一封自动电子邮件
- javascript - 如何访问外部范围内的回调函数返回的值?
- typescript - 在 TypeScript/fp-ts 中使用 Either 输入错误