# Counter

> ComputeBuffer with a counter.

## Definition

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

```csharp
Counter = 4
```

### Remarks

Adds a "counter" to a `RWStructuredBuffer` and allows using `IncrementCounter` / `DecrementCounter` HLSL functions on it.

The stride passed when constructing the buffer must match structure size, be a multiple of 4 and less than 2048.

See Microsoft's HLSL documentation on [IncrementCounter](https://msdn.microsoft.com/en-us/library/windows/desktop/ff471497.aspx) and [DecrementCounter](https://msdn.microsoft.com/en-us/library/windows/desktop/ff471495.aspx).

The buffer size value can be copied into another buffer using [ComputeBuffer.CopyCount](/engine/6000.0/script-reference/unityengine/computebuffer/copycount.md), or explicitly reset with [ComputeBuffer.SetCounterValue](/engine/6000.0/script-reference/unityengine/computebuffer/setcountervalue.md).

Additional Resources: [ComputeBuffer](/engine/6000.0/script-reference/unityengine/computebuffer.md), [ComputeShader](/engine/6000.0/script-reference/unityengine/computeshader.md), [Material.SetBuffer](/engine/6000.0/script-reference/unityengine/material/setbuffer.md).
