2
0
Эх сурвалжийг харах

Editor: Handling scene.userData.

Mr.doob 12 жил өмнө
parent
commit
04fad88206

+ 9 - 8
editor/index.html

@@ -144,6 +144,7 @@
 				modifierAxisChanged: new SIGNALS.Signal(),
 				snapChanged: new SIGNALS.Signal(),
 				rendererChanged: new SIGNALS.Signal(),
+				sceneAdded: new SIGNALS.Signal(),
 				sceneChanged: new SIGNALS.Signal(),
 				objectAdded: new SIGNALS.Signal(),
 				objectSelected: new SIGNALS.Signal(),
@@ -310,11 +311,15 @@
 							} else if ( data.metadata.type === 'object' ) {
 
 								var loader = new THREE.ObjectLoader();
-								var scene = loader.parse( data );
+								var result = loader.parse( data );
+
+								if ( result instanceof THREE.Scene ) {
+
+									signals.sceneAdded.dispatch( result );
 
-								while ( scene.children.length > 0 ) {
+								} else {
 
-									signals.objectAdded.dispatch( scene.children[ 0 ] );
+									signals.objectAdded.dispatch( result );
 
 								}
 
@@ -513,11 +518,7 @@
 				var loader = new THREE.ObjectLoader();
 				var scene = loader.parse( JSON.parse( localStorage.threejsEditor ) );
 
-				while ( scene.children.length > 0 ) {
-
-					signals.objectAdded.dispatch( scene.children[ 0 ] );
-
-				}
+				signals.sceneAdded.dispatch( scene );
 
 			}
 

+ 14 - 0
editor/js/ui/Viewport.js

@@ -270,6 +270,18 @@ var Viewport = function ( signals ) {
 
 	} );
 
+	signals.sceneAdded.add( function ( object ) {
+
+		scene.userData = JSON.parse( JSON.stringify( object.userData ) );
+
+		while ( object.children.length > 0 ) {
+
+			signals.objectAdded.dispatch( object.children[ 0 ] );
+
+		}
+
+	} );
+
 	signals.objectAdded.add( function ( object ) {
 
 		// handle children
@@ -387,6 +399,8 @@ var Viewport = function ( signals ) {
 
 		render();
 
+		signals.sceneChanged.dispatch( scene );
+
 	} );
 
 	signals.cloneSelectedObject.add( function () {