Bladeren bron

Keep mesh names

`name` is the primitive index. Since most meshes have only one
primitive, just use the group name for index 0.
Al McElrath 8 jaren geleden
bovenliggende
commit
7c0a7849c0
1 gewijzigde bestanden met toevoegingen van 6 en 0 verwijderingen
  1. 6 0
      examples/js/loaders/GLTFLoader.js

+ 6 - 0
examples/js/loaders/GLTFLoader.js

@@ -1224,6 +1224,7 @@ THREE.GLTFLoader = ( function () {
 
 						var meshNode = new THREE.Mesh( geometry, material );
 						meshNode.castShadow = true;
+						meshNode.name = ( name === "0" ? group.name : group.name + name );
 
 						if ( primitive.extras ) meshNode.userData = primitive.extras;
 
@@ -1271,6 +1272,8 @@ THREE.GLTFLoader = ( function () {
 
 						}
 
+						meshNode.name = ( name === "0" ? group.name : group.name + name );
+
 						if ( primitive.extras ) meshNode.userData = primitive.extras;
 
 						group.add( meshNode );
@@ -1512,6 +1515,7 @@ THREE.GLTFLoader = ( function () {
 								var originalMaterial = child.material;
 								var originalGeometry = child.geometry;
 								var originalUserData = child.userData;
+								var originalName = child.name;
 
 								var material;
 
@@ -1542,6 +1546,7 @@ THREE.GLTFLoader = ( function () {
 
 								child.castShadow = true;
 								child.userData = originalUserData;
+								child.name = originalName;
 
 								var skinEntry;
 
@@ -1561,6 +1566,7 @@ THREE.GLTFLoader = ( function () {
 									child = new THREE.SkinnedMesh( geometry, material, false );
 									child.castShadow = true;
 									child.userData = originalUserData;
+									child.name = originalName;
 
 									var bones = [];
 									var boneInverses = [];