# SetProgressReporter(BakeProgressState)

> Configures progress tracking for integration operations.

## Definition

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

```csharp
void SetProgressReporter(BakeProgressState progress)
```

### Parameters

**** (\[BakeProgressState]\(/engine/6000.5/script-reference/unityengine/lighttransport/bakeprogressstate)): Progress state object that will receive updates during integration.

### Remarks

Set a [BakeProgressState](/engine/6000.5/script-reference/unityengine/lighttransport/bakeprogressstate.md) on the integrator for progress reporting for long-running integration operations. The integrator updates the progress state during execution, allowing external systems to display progress information and handle cancellation requests.

The progress reporter provides:

* Completion percentage (0.0 to 1.0).
* Ability to cancel operations.
* Work step tracking for detailed progress.

Additional Resources: [BakeProgressState.Progress](/engine/6000.5/script-reference/unityengine/lighttransport/bakeprogressstate/progress.md), [BakeProgressState.Cancel](/engine/6000.5/script-reference/unityengine/lighttransport/bakeprogressstate/cancel.md).

### Examples

```csharp
var integrator = new RadeonRaysProbeIntegrator();
using var progress = new BakeProgressState();
integrator.SetProgressReporter(progress);

// Start integration in background
var integrationTask = Task.Run(() =>
{
    return integrator.IntegrateDirectRadiance(context, 0, 1000, 2048, false, outputBuffer);
});

// Monitor progress
while (!integrationTask.IsCompleted)
{
    float currentProgress = progress.Progress();
    Debug.Log($"Integration progress: {currentProgress * 100:F1}%");

    // Allow user to cancel
    if (userRequestedCancel)
    {
        progress.Cancel();
    }

    await Task.Delay(100);
}

var result = await integrationTask;
```
