diff --git a/packages/dev/loaders/src/glTF/2.0/Extensions/ExtrasAsMetadata.ts b/packages/dev/loaders/src/glTF/2.0/Extensions/ExtrasAsMetadata.ts index e74c9a3e518..825fe54a714 100644 --- a/packages/dev/loaders/src/glTF/2.0/Extensions/ExtrasAsMetadata.ts +++ b/packages/dev/loaders/src/glTF/2.0/Extensions/ExtrasAsMetadata.ts @@ -1,9 +1,10 @@ import type { Nullable } from "core/types"; import type { TransformNode } from "core/Meshes/transformNode"; import type { Camera } from "core/Cameras/camera"; +import type { AnimationGroup } from "core/Animations/animationGroup"; import type { IProperty } from "babylonjs-gltf2interface"; -import type { INode, ICamera, IMaterial } from "../glTFLoaderInterfaces"; +import type { INode, ICamera, IMaterial, IAnimation } from "../glTFLoaderInterfaces"; import type { IGLTFLoaderExtension } from "../glTFLoaderExtension"; import type { GLTFLoader } from "../glTFLoader"; import type { Material } from "core/Materials/material"; @@ -92,6 +93,18 @@ export class ExtrasAsMetadata implements IGLTFLoaderExtension { this._assignExtras(babylonMaterial, material); return babylonMaterial; } + + /** + * @internal + */ + // eslint-disable-next-line no-restricted-syntax + public loadAnimationAsync(context: string, animation: IAnimation): Nullable> { + // eslint-disable-next-line github/no-then + return this._loader.loadAnimationAsync(context, animation).then((babylonAnimation: AnimationGroup) => { + this._assignExtras(babylonAnimation, animation); + return babylonAnimation; + }); + } } unregisterGLTFExtension(NAME);