如何高效地从预制中产生/实例化大量的对象

我正在尝试制作一个游戏,其中包含了大量的立方体(Minecraft / Trove克隆),但由于渲染的对象/顶点数量过多,我仍然遇到了巨大的性能问题一旦。

只是为了澄清,问题似乎是由渲染引起的,而不是实例化。 我认为这样做是基于这样的事实:当我从立方体看远离时,帧速率将恢复到正常(> 60)。

有没有什么办法来优化这个? 许多类似问题的答案都表明禁用了对撞机,但这对我来说似乎并没有太大的差别。 我也试过预制静电,但问题依然存在。

目前,我一直保持~40 FPS 10000立方(只是内置立方体形状存储为一个静态预制与禁用对撞机)。 我相信应该有办法在屏幕上拥有更多的对象,而不会有这样的性能下降。

Unity是否有任何方法来存储graphics卡内存的预制信息,使其能够以更高性能的方式大量渲染实例(与现代OpenGL使用顶点缓冲区非常相似)?

这听起来像你正在寻找的是闭塞剔除。

本质上,如果您正在运行类似Minecraft的游戏,则渲染器将尝试渲染相机当前正在看到的所有内容,即使是被其他GameObjects遮挡的GameObjects。 问题发生了,因为你真正想要的只是渲染实际显示的东西,也就是说,只有在视图中的GameObjects并没有被其他GameObjects阻塞。

堵塞剔除来拯救! 闭塞剔除通过说“嗨,我知道在我面前有很多的GameObjects,但你能渲染那些玩家实际上正在看到的那些,而不是被其他GameObjects阻止的那些?”来解决你的问题。 “

希望这是有道理的!

查看这个链接 ,从Unity的一个很好的指导,解释到底我在说什么…好多了,然后我做了。