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

CommandBuffer.DrawMeshInstancedProcedural

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项建议并进行必要的更新。

关闭

提交失败

由于某些原因,您的建议修改无法提交。请在几分钟后 重试。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public void DrawMeshInstancedProcedural(Mesh mesh, int submeshIndex, Material material, int shaderPass, int count, MaterialPropertyBlock properties);

参数

mesh 要绘制的 网格
submeshIndex 要绘制的网格子集。这仅适用于由多个材质组成的网格。
material 要使用的 材质
shaderPass 要使用的着色器通道,或 -1 表示渲染所有通道。
count 要绘制的实例数量。
properties 在绘制此网格之前要应用于材质的附加材质属性。请参见 MaterialPropertyBlock

描述

添加一个“使用实例绘制网格”命令。

使用程序实例化绘制网格。这类似于 Graphics.DrawMeshInstancedIndirect,不同之处在于,当实例数量从脚本中得知时,可以直接使用此方法提供该数量,而不是通过 ComputeBuffer 提供。如果 Material.enableInstancing 为 false,则该命令会在每次执行命令时记录错误并跳过渲染;该命令不会立即失败并抛出异常。

如果当前平台不支持此 API(例如,如果 GPU 实例化不可用),则会抛出 InvalidOperationException。请参见 SystemInfo.supportsInstancing