BakeProgressState
класс в UnityEngine.LightTransport
Описание
Обеспечивает отчеты о ходе работы и поддержку отмены для асинхронных операций легких запекания.
Этот класс сообщает о ходе выполняющихся асинхронных операций запекания и предоставляет метод для запроса их отмены. Он поддерживает отслеживание прогресса по шагам работы, и его можно использовать сразу для нескольких операций, чтобы вести общий отчёт о прогрессе.
BakeProgressState обычно используется с:
- InputExtraction.PopulateWorld для прогресса в области народонаселения мира.
- IProbeIntegrator методы отслеживания прогресса в интеграции.
- Долгосрочные операции по перевозке легковых транспортных средств, в ходе которых обеспечивается обратная связь.
Состояние прогресса использует модель рабочих шагов, в которой общий ожидаемый объём работы задаётся заранее, а объём выполненной работы увеличивается по мере продвижения операций.
// Set up progress tracking for a baking operation using var progress = new BakeProgressState(); progress.SetTotalWorkSteps(1000);
// Configure integrator to report progress var integrator = new RadeonRaysProbeIntegrator(); integrator.SetProgressReporter(progress);
// Start integration operation var integrationTask = Task.Run(() => { return integrator.IntegrateDirectRadiance( context, 0, probeCount, 2048, false, outputBuffer); });
// Monitor progress and allow cancellation while (!integrationTask.IsCompleted) { float currentProgress = progress.Progress(); Debug.Log($"Baking progress: {currentProgress * 100:F1}%");
// Check for user cancellation if (Input.GetKeyDown(KeyCode.Escape)) { progress.Cancel(); Debug.Log("Cancelling bake operation..."); }
await Task.Delay(100); }
// Check if operation was cancelled if (progress.WasCancelled()) { Debug.Log("Bake operation was cancelled"); } else { var result = await integrationTask; Debug.Log($"Bake completed: {result.type}"); }
Конструкторы
| Конструктор | Описание |
|---|---|
| BakeProgressState | Конструктор. |
Открытые методы
| Метод | Описание |
|---|---|
| Cancel | Отмена асинхронной операции. |
| Dispose | Удалить объект BakeProgressState. |
| IncrementCompletedWorkSteps | Увеличивает количество завершённых рабочих шагов для этого состояния прогресса. |
| Progress | Получить значение прогресса. |
| SetTotalWorkSteps | Задаёт общее количество рабочих шагов для состояния прогресса. Количество завершённых шагов увеличивается методом IncrementCompletedWorkSteps. |
| WasCancelled | Проверяет, была ли отменена работа, представленная этим состоянием прогресса. |