# SetGlobalConstantBuffer

> Sets a ComputeBuffer or GraphicsBuffer as a named constant buffer for all shader types.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## SetGlobalConstantBuffer(string, ComputeBuffer, int, int)

Sets a [ComputeBuffer](/engine/6000.5/script-reference/unityengine/computebuffer.md) or [GraphicsBuffer](/engine/6000.5/script-reference/unityengine/graphicsbuffer.md) as a named constant buffer for all shader types.

```csharp
public static void SetGlobalConstantBuffer(string name, ComputeBuffer value, int offset, int size)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the constant buffer to override.**** (\[ComputeBuffer]\(/engine/6000.5/script-reference/unityengine/computebuffer)): The buffer to override the constant buffer values with, or null to remove binding.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Offset in bytes from the beginning of the buffer to bind. Must be a multiple of [SystemInfo.constantBufferOffsetAlignment](/engine/6000.5/script-reference/unityengine/systeminfo/constantbufferoffsetalignment.md), or 0 if that value is 0.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of bytes to bind.

### Remarks

See [Material.SetConstantBuffer](/engine/6000.5/script-reference/unityengine/material/setconstantbuffer.md) 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.

## SetGlobalConstantBuffer(int, ComputeBuffer, int, int)

Sets a [ComputeBuffer](/engine/6000.5/script-reference/unityengine/computebuffer.md) or [GraphicsBuffer](/engine/6000.5/script-reference/unityengine/graphicsbuffer.md) as a named constant buffer for all shader types.

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

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The name ID of the constant buffer retrieved by [Shader.PropertyToID](/engine/6000.5/script-reference/unityengine/shader/propertytoid.md).**** (\[ComputeBuffer]\(/engine/6000.5/script-reference/unityengine/computebuffer)): The buffer to override the constant buffer values with, or null to remove binding.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Offset in bytes from the beginning of the buffer to bind. Must be a multiple of [SystemInfo.constantBufferOffsetAlignment](/engine/6000.5/script-reference/unityengine/systeminfo/constantbufferoffsetalignment.md), or 0 if that value is 0.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of bytes to bind.

### Remarks

See [Material.SetConstantBuffer](/engine/6000.5/script-reference/unityengine/material/setconstantbuffer.md) 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.

## SetGlobalConstantBuffer(string, GraphicsBuffer, int, int)

Sets a [ComputeBuffer](/engine/6000.5/script-reference/unityengine/computebuffer.md) or [GraphicsBuffer](/engine/6000.5/script-reference/unityengine/graphicsbuffer.md) as a named constant buffer for all shader types.

```csharp
public static void SetGlobalConstantBuffer(string name, GraphicsBuffer value, int offset, int size)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the constant buffer to override.**** (\[GraphicsBuffer]\(/engine/6000.5/script-reference/unityengine/graphicsbuffer)): The buffer to override the constant buffer values with, or null to remove binding.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Offset in bytes from the beginning of the buffer to bind. Must be a multiple of [SystemInfo.constantBufferOffsetAlignment](/engine/6000.5/script-reference/unityengine/systeminfo/constantbufferoffsetalignment.md), or 0 if that value is 0.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of bytes to bind.

### Remarks

See [Material.SetConstantBuffer](/engine/6000.5/script-reference/unityengine/material/setconstantbuffer.md) 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.

## SetGlobalConstantBuffer(int, GraphicsBuffer, int, int)

Sets a [ComputeBuffer](/engine/6000.5/script-reference/unityengine/computebuffer.md) or [GraphicsBuffer](/engine/6000.5/script-reference/unityengine/graphicsbuffer.md) as a named constant buffer for all shader types.

```csharp
public static void SetGlobalConstantBuffer(int nameID, GraphicsBuffer value, int offset, int size)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The name ID of the constant buffer retrieved by [Shader.PropertyToID](/engine/6000.5/script-reference/unityengine/shader/propertytoid.md).**** (\[GraphicsBuffer]\(/engine/6000.5/script-reference/unityengine/graphicsbuffer)): The buffer to override the constant buffer values with, or null to remove binding.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): Offset in bytes from the beginning of the buffer to bind. Must be a multiple of [SystemInfo.constantBufferOffsetAlignment](/engine/6000.5/script-reference/unityengine/systeminfo/constantbufferoffsetalignment.md), or 0 if that value is 0.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The number of bytes to bind.

### Remarks

See [Material.SetConstantBuffer](/engine/6000.5/script-reference/unityengine/material/setconstantbuffer.md) 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.
