runWithAssetPreload method
Future<SdkResult<void> >
runWithAssetPreload({
- required AssetPreloadCoordinator preload,
- required List<
AssetManifestItem> manifest, - GameSessionController? session,
Wires this controller's run to a real AssetPreloadCoordinator
(FEAT-47) + GameSessionController (FEAT-41): preload's progress
feeds this controller's progress, and a successful preload calls
GameSessionController.markReady+GameSessionController.start so the
session phase and the transition phase land in sync.
Implementation
Future<SdkResult<void>> runWithAssetPreload({
required AssetPreloadCoordinator preload,
required List<AssetManifestItem> manifest,
GameSessionController? session,
}) {
return run((onProgress) async {
final sub = preload.progress.listen(onProgress);
try {
final result = await preload.preload(manifest);
if (result is SdkSuccess<void>) {
session?.markReady();
session?.start();
}
return result;
} finally {
sub.cancel();
}
});
}