Loading the required bundles
Control when assets load and how their results are accessed.
AssetManager registers assets, loads them and stores the results. A bundle is a named group of assets that can be loaded together.
The runPreload method in BootPreloadService.ts loads assets sequentially:
await this.sceneContext.engine.bootstrapConfigBundles(request.configBundles);
for (const bundleName of request.assetBundles) {
await this.assets.loadBundle(bundleName);
}
This code explicitly defines the order of the groups. AssetManager limits requests through concurrency, retry and timeout settings. These settings do not make a missing asset an acceptable result.
Scene loading
If a bundle is needed when entering a scene, list it in SceneConfig.assets:
assets: {
bundles: ['images', 'fonts'],
ids: ['json/layouts/scenes/game/layout.json'],
},
This is part of a scene definition. Bundle names and IDs must exist in the manifest. loadBundle rejects unknown names, so a typo is detected immediately.
load(ids) loads individual IDs. has(id) checks for a loaded result, and get(id) returns it. For JSON, we then use a decoder; for images, a standard node or TextureAssetResolver.
After loading, loadRequiredBundle(name) checks that every result is present. An ordinary loadBundle call does not guarantee that every file loaded: individual loader failures are handled inside the coordinator. Use loadRequiredBundle for required assets.
Leaving a scene does not clear the shared asset cache: the next scene may use the same files. AssetManager has no public evict method.