public UniTask <AsyncUnit> StartLoading(CancellationToken cancellationToken, int delayBeforeDestroy = 500) { this.delayBeforeViewDestroy = delayBeforeDestroy; uniTaskCompletionSource = new UniTaskCompletionSource <AsyncUnit>(); Initialize(); currentProgress = 0; var firstCommand = loadingManager.GetFirstCommand(); cachedViewEntity = new LoadingViewEntity() { CurrentProgress = currentProgress, CurrentCommand = 0, TotalCommands = loadingManager.TotalCommands, CurrentDescription = firstCommand.Description, }; loadingView.SetViewEntity(cachedViewEntity); Object.DontDestroyOnLoad(loadingView.ViewGameObject); loadingManager.StartPreloading(); return(uniTaskCompletionSource.Task); }