Skip to content

Asset Manager

A framework-agnostic solution for preloading assets such as: 3D models, video clips, audio files and more. Preloading assets is typically done in the preload() method when using the plugins for babylon.js or three.js.

Methods

preload

assetManager.preload(url: string | string[], options?: object): Promise<void>

Preload one or more assets.

Arguments

  • url: string | string[]. Absolute or relative URL(s) of the asset(s).
  • options: object, optional. An object with the following keys (all are optional):
    • timeout: number. Timeout value, in seconds. Defaults to infinity (i.e., no timeout).

Returns

A promise that is resolved as soon as all assets are preloaded, or that is rejected on error.

Example

class MyDemo exports ARDemo
{
    // ...

    preload()
    {
        return this._assetManager.preload([
            'assets/mage.glb',
            'assets/cat.glb',
            'assets/meow.wav',
        ], { timeout: 30 });
    }

    // ...

    constructor()
    {
        super();

        // ...

        this._assetManager = new AssetManager();

        // ...
    }
}

url

assetManager.url(filename: string): string

Gets an object URL of a preloaded asset.

Arguments

  • filename: string. The filename of the asset.

Returns

An object URL.

Example

// If the asset is located at "assets/mage.glb",
// then its filename is "mage.glb"
const mageURL = this._assetManager.url('mage.glb');

file

assetManager.file(filename: string): File

Gets a File corresponding to a preloaded asset.

Arguments

  • filename: string. The filename of the asset.

Returns

A File object.

has

assetManager.has(filename: string): boolean

Checks if an asset has been preloaded.

Arguments

  • filename: string. The filename of the asset.

Returns

Returns true if an asset with the given filename has been preloaded.