# BufferSlice(BufferID, ulong)

> Construct a new BufferSlice struct by defining an offset from the beginning of a buffer. The buffer is defined by the BufferID.

## Definition

* **Type:** Constructor
* **Namespace:** [UnityEngine.LightTransport](/engine/6000.0/script-reference/unityengine/lighttransport.md)
* **Assembly:** UnityEditor

```csharp
public BufferSlice(BufferID id, ulong offset)
```

### Parameters

**** (\[BufferID]\(/engine/6000.0/script-reference/unityengine/lighttransport/bufferid)): ID of the buffer.**** (\[ulong]\(https\://learn.microsoft.com/dotnet/api/system.uint64)): Offset from the beginning of the buffer, measured in elements of type T.

### Remarks

Creates a typed view into a buffer starting at the specified element offset. The offset is measured in elements of the type T, not in bytes.

**Important:** The offset must not exceed the buffer's capacity, and there must be sufficient space for the intended operations. Buffer bounds checking is implementation-dependent.

### Examples

```csharp
// Create a buffer for 1000 Vector3 elements
BufferID buffer = context.CreateBuffer(1000, 12); // 12 bytes per Vector3

// Create slices for different portions
var firstHalf = new BufferSlice<Vector3>(buffer, 0);   // Elements 0-499
var secondHalf = new BufferSlice<Vector3>(buffer, 500); // Elements 500-999

// Use slices independently
context.WriteBuffer(firstHalf, firstHalfData);
context.WriteBuffer(secondHalf, secondHalfData);
```
