When I load a GLB , is it possible to find a (deeply nested) mesh by a unique ID or so? By default we have mesh.id, mesh.name, but these are not per se unique.
Background: I like to save to save some metadata for a specific (nested) mesh in a database and apply each time I load the GLB.
I load the GLB via BABYLON.SceneLoader.LoadAssetContainer.
Thanks !
You can use scene.getMeshByUniqueId
. A uniqueId
is assigned to a mesh at creation time and can be accessed by mesh.uniqueId
.
3 Likes
What happens to this uniqueId in case the nested mesh is part of a series of GLB files loaded, and the loading sequence varies? It seems the uniqueId is a scene node counter, am I correct?
I was hoping for an ID that somehow is based on the node-path or so.
Yes, uniqueId
comes from a scene counter, so is unique for the current session.
The unique ids may not be the same depending on how you load the objects but they will still be uniquely distributed among objects for the current session.
You can reassign the uniqueId
property of objects after they have been loaded/created if you want to use a different scheme.
1 Like