Yo @bghgary / @sebavan / @Deltakosh
How do we register GLTF extensions in ES6 Versions ?
Here is how i was doing it in UMD Builds:
BABYLON.GLTF2.GLTFLoader.RegisterExtension(TOOLKIT.SceneManager.CVTOOLS_NAME, (loader) => new TOOLKIT.CVTOOLS_unity_metadata(loader));
I may have got it
import { GLTFLoader, ArrayItem, IGLTFLoaderExtension, IScene, INode, IMaterial, IAnimation, IMesh, IMeshPrimitive } from '@babylonjs/loaders/glTF/2.0';
import { registerGLTFExtension } from "@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry";
if (registerGLTFExtension)
{
if (!globalThis.CVTOOLS_NAME_REGISTERED) {
registerGLTFExtension(TOOLKIT.SceneManager.CVTOOLS_NAME, true, (loader) => new TOOLKIT.CVTOOLS_unity_metadata(loader));
globalThis.CVTOOLS_NAME_REGISTERED = true;
console.log("Babylon Toolkit: CVTOOLS_NAME registered");
}
if (!globalThis.CVTOOLS_MESH_REGISTERED) {
registerGLTFExtension(TOOLKIT.SceneManager.CVTOOLS_MESH, true, (loader) => new TOOLKIT.CVTOOLS_babylon_mesh(loader));
globalThis.CVTOOLS_MESH_REGISTERED = true;
console.log("Babylon Toolkit: CVTOOLS_MESH registered");
}
if (!globalThis.CVTOOLS_HAND_REGISTERED) {
registerGLTFExtension(TOOLKIT.SceneManager.CVTOOLS_HAND, true, (loader) => new TOOLKIT.CVTOOLS_left_handed(loader));
globalThis.CVTOOLS_HAND_REGISTERED = true;
console.log("Babylon Toolkit: CVTOOLS_HAND registered");
}
}
else
{
console.warn("Babylon Toolkit: ES6 GLTF Parser not registered because RegisterGLTFExtension is not available.");
}
Yup, you got it.
It should say in the deprecated message what to use.
It does say the function, but not where to find it:
import { registerGLTFExtension } from "@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry";
If you use vscode, typing the function name will show red squiggles. Then it will import it from the right place with quick fix.