فهرست منبع

gltf-loader: use sanitized name when creating unique node name for duplicated

Ryan Smith 4 سال پیش
والد
کامیت
32a090cf45
2فایلهای تغییر یافته به همراه8 افزوده شده و 4 حذف شده
  1. 4 2
      examples/js/loaders/GLTFLoader.js
  2. 4 2
      examples/jsm/loaders/GLTFLoader.js

+ 4 - 2
examples/js/loaders/GLTFLoader.js

@@ -2846,11 +2846,13 @@ THREE.GLTFLoader = ( function () {
 	/** When Object3D instances are targeted by animation, they need unique names. */
 	/** When Object3D instances are targeted by animation, they need unique names. */
 	GLTFParser.prototype.createUniqueName = function ( originalName ) {
 	GLTFParser.prototype.createUniqueName = function ( originalName ) {
 
 
-		var name = THREE.PropertyBinding.sanitizeNodeName( originalName || '' );
+		var sanitizedName = THREE.PropertyBinding.sanitizeNodeName( originalName || '' );
+
+		var name = sanitizedName;
 
 
 		for ( var i = 1; this.nodeNamesUsed[ name ]; ++ i ) {
 		for ( var i = 1; this.nodeNamesUsed[ name ]; ++ i ) {
 
 
-			name = originalName + '_' + i;
+			name = sanitizedName + '_' + i;
 
 
 		}
 		}
 
 

+ 4 - 2
examples/jsm/loaders/GLTFLoader.js

@@ -2911,11 +2911,13 @@ var GLTFLoader = ( function () {
 	/** When Object3D instances are targeted by animation, they need unique names. */
 	/** When Object3D instances are targeted by animation, they need unique names. */
 	GLTFParser.prototype.createUniqueName = function ( originalName ) {
 	GLTFParser.prototype.createUniqueName = function ( originalName ) {
 
 
-		var name = PropertyBinding.sanitizeNodeName( originalName || '' );
+		var sanitizedName = PropertyBinding.sanitizeNodeName( originalName || '' );
+
+		var name = sanitizedName;
 
 
 		for ( var i = 1; this.nodeNamesUsed[ name ]; ++ i ) {
 		for ( var i = 1; this.nodeNamesUsed[ name ]; ++ i ) {
 
 
-			name = originalName + '_' + i;
+			name = sanitizedName + '_' + i;
 
 
 		}
 		}