Unity 6.3
0 онлайн 40 гостей 3 в системе
Вход

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Проверяет, была ли отменена работа, представленная этим состоянием прогресса.