name | 要覆盖的常量缓冲区的名称。 |
value | 用于覆盖常量缓冲区值的 ComputeBuffer,或 null 以移除绑定。 |
offset | 从缓冲区开头开始绑定的偏移量(以字节为单位)。必须是 SystemInfo.constantBufferOffsetAlignment 的倍数,如果该值为 0,则必须为 0。 |
size | 要绑定的字节数。 |
nameID | 要覆盖的常量缓冲区的着色器属性 ID。 |
将 ComputeBuffer 或 GraphicsBuffer 作为命名常量缓冲区设置为材质。
可以使用此方法用 ComputeBuffer 或 GraphicsBuffer 的内容覆盖着色器常量缓冲区中的所有参数。
要使用此方法,必须满足以下条件
常量缓冲区的数据布局可能因图形 API 而异。这意味着 SetConstantBuffer
可能会覆盖数据或将变量设置为错误的值。有关更多信息,请参阅 为不同的图形 API 编写着色器。
在使用非空 ComputeBuffer 或 GraphicsBuffer 调用此函数后,将无法再手动设置覆盖的常量缓冲区内变量的值。对 Material.SetFloat 及类似函数的调用(其中给定的属性名称 ID 指向覆盖的常量缓冲区内的变量)将无效。