Version: 2019.4
LanguageEnglish
  • C#

Shader.SetGlobalConstantBuffer

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Switch to Manual

Declaration

public static void SetGlobalConstantBuffer(int nameID, ComputeBuffer value, int offset, int size);

Parameters

nameID The name of the constant buffer to override.
value The ComputeBuffer to override the constant buffer values with, or null to remove binding.
offset Offset in bytes from the beginning of the ComputeBuffer to bind. Must be a multiple of SystemInfo.MinConstantBufferAlignment, or 0 if that value is 0.
size The number of bytes to bind.

Description

Sets a ComputeBuffer as a named constant buffer for the material.

See Material.SetConstantBuffer for usage. If a constant buffer is bound both globally and per-material, the per-material buffer is used. However, if a constant buffer is bound globally, it overrides all shader parameters in all materials that reside in any constant buffer with the given name. Use this function with special caution, especially when you're using constant buffer names that are commonly used, as it may have unintended effects.