Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 是否应将15万块小岩石设定为统一的静态岩石?_Unity3d_Static - Fatal编程技术网

Unity3d 是否应将15万块小岩石设定为统一的静态岩石?

Unity3d 是否应将15万块小岩石设定为统一的静态岩石?,unity3d,static,Unity3d,Static,我的游戏中有2500 x 2500个单位大小的地形,地形表面有15万个小岩石,没有对撞机、物理、阴影或任何东西。他们从不动,只是坐在那里。我能从这些石头的静止状态中获益吗?或者我能做些什么来提高性能,但保持石头的稳定。我已经将岩石的剔除距离设置为125。我正在将FPS打印到UI文本,以检查移动设备的性能。在移动设备上,我的fps是60,有岩石或没有岩石,但在PC上,我的fps是40,有岩石是30 至少,您应该确保您的对象符合以下条件: 这是一种可以帮助您实现这一目标的方法。但是我猜您没有在编辑器

我的游戏中有2500 x 2500个单位大小的地形,地形表面有15万个小岩石,没有对撞机、物理、阴影或任何东西。他们从不动,只是坐在那里。我能从这些石头的静止状态中获益吗?或者我能做些什么来提高性能,但保持石头的稳定。我已经将岩石的剔除距离设置为125。我正在将FPS打印到UI文本,以检查移动设备的性能。在移动设备上,我的fps是60,有岩石或没有岩石,但在PC上,我的fps是40,有岩石是30


至少,您应该确保您的对象符合以下条件:

这是一种可以帮助您实现这一目标的方法。但是我猜您没有在编辑器中手动放置150000个对象,因此您不会从编辑器的优化中获益

但是,您可以将对象置于父对象下并调用。在放置了所有150000个对象之后,只调用一次

更进一步,我可以试着把多块石头放进一个物体中,例如。然后重用这些对象中的一个或多个,以符合批处理条件并获得更高的FPS。每个对象都可以包含多个微小的岩石,您可以将它们随机分层以获得随机外观。请注意,网格上有65536个顶点的限制,因此单个对象可能无法获得所需的随机外观


它的主要要点是,您希望避免对每个对象进行单独的绘制调用。在优化时检查改进。还要注意的是,拥有这么多对象会带来一些CPU和内存开销,这可以通过使用较大的对象包含多个较小的网格来避免。

至少您应该确保您的对象符合要求

这是一种可以帮助您实现这一目标的方法。但是我猜您没有在编辑器中手动放置150000个对象,因此您不会从编辑器的优化中获益

但是,您可以将对象置于父对象下并调用。在放置了所有150000个对象之后,只调用一次

更进一步,我可以试着把多块石头放进一个物体中,例如。然后重用这些对象中的一个或多个,以符合批处理条件并获得更高的FPS。每个对象都可以包含多个微小的岩石,您可以将它们随机分层以获得随机外观。请注意,网格上有65536个顶点的限制,因此单个对象可能无法获得所需的随机外观


它的主要要点是,您希望避免对每个对象进行单独的绘制调用。在优化时检查改进。还要注意的是,拥有这么多的对象会带来一些CPU和内存开销,这可以通过使用较大的对象来包含多个较小的网格来避免。

是,因为Unity会将它们批在一起以降低批计数。是,因为Unity会将它们批在一起以降低批计数。