版本: Unity 6 (6000.0)
语言英语
  • C#

ParticleSystem.SetMaximumPreMappedBufferCounts

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们不能接受所有提交的内容,但我们会阅读用户提出的每个更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public static void SetMaximumPreMappedBufferCounts(int vertexBuffersCount, int indexBuffersCount);

参数

vertexBuffersCount 缓存顶点缓冲区的最大数量。
indexBuffersCount 缓存索引缓冲区的最大数量。

描述

限制 Unity 为高效渲染粒子系统而保留的图形内存量。

为了将粒子数据有效地写入图形内存,Unity 使用一个预分配顶点缓冲区的池。当渲染大量粒子时,此池的大小将增加。如果粒子数量稍后减少,池仍然会保持这个大小。

在渲染大量粒子且池已预先调整到适当大小时,保持一个大的池可以使未来的渲染更有效。但是,一个大的池会使用更多内存,因此此函数允许您设置缓存中缓冲区数量的限制。

如果可见粒子的总数达到限制,Unity 会按需分配新缓冲区并在需要它们的帧内释放它们,而不是将它们保存起来以便在多个帧中重复使用。这可能会更慢,但可以防止缓存使用过多的内存。

现代图形 API(如 DirectX12、Vulkan 和 Metal)不使用预分配的顶点缓冲区池,因为它们可以在没有它的情况下高效地运行。此方法在这些设备上不起作用。