瀏覽代碼

Editor: Add option for toggle rendering of helpers.

Mugen87 5 年之前
父節點
當前提交
04811c49c5
共有 4 個文件被更改,包括 36 次插入16 次删除
  1. 1 0
      editor/js/Editor.js
  2. 21 15
      editor/js/Sidebar.Settings.Viewport.js
  3. 3 0
      editor/js/Strings.js
  4. 11 1
      editor/js/Viewport.js

+ 1 - 0
editor/js/Editor.js

@@ -79,6 +79,7 @@ function Editor() {
 		windowResize: new Signal(),
 
 		showGridChanged: new Signal(),
+		showHelpersChanged: new Signal(),
 		refreshSidebarObject3D: new Signal(),
 		historyChanged: new Signal(),
 

+ 21 - 15
editor/js/Sidebar.Settings.Viewport.js

@@ -2,7 +2,7 @@
  * @author mrdoob / http://mrdoob.com/
  */
 
-import { UIDiv, UIBreak, UIText } from './libs/ui.js';
+import { UIDiv, UIText, UIRow } from './libs/ui.js';
 import { UIBoolean } from './libs/ui.three.js';
 
 
@@ -12,28 +12,34 @@ function SidebarSettingsViewport( editor ) {
 	var strings = editor.strings;
 
 	var container = new UIDiv();
-	container.add( new UIBreak() );
 
-	container.add( new UIText( strings.getKey( 'sidebar/settings/viewport/grid' ) ).setWidth( '90px' ) );
+	// grid
 
-	var show = new UIBoolean( true ).onChange( update );
-	container.add( show );
+	var showGridRow = new UIRow();
 
-	/*
-	var snapSize = new UI.Number( 25 ).setWidth( '40px' ).onChange( update );
-	container.add( snapSize );
+	showGridRow.add( new UIText( strings.getKey( 'sidebar/settings/viewport/grid' ) ).setWidth( '90px' ) );
 
-	var snap = new UI.THREE.Boolean( false, 'snap' ).onChange( update );
-	container.add( snap );
-	*/
+	var showGrid = new UIBoolean( true ).onChange( function () {
 
-	function update() {
+		signals.showGridChanged.dispatch( showGrid.getValue() );
 
-		signals.showGridChanged.dispatch( show.getValue() );
+	} );
+	showGridRow.add( showGrid );
+	container.add( showGridRow );
 
-		// signals.snapChanged.dispatch( snap.getValue() === true ? snapSize.getValue() : null );
+	// helpers
 
-	}
+	var showHelpersRow = new UIRow();
+
+	showHelpersRow.add( new UIText( strings.getKey( 'sidebar/settings/viewport/helpers' ) ).setWidth( '90px' ) );
+
+	var showHelpers = new UIBoolean( true ).onChange( function () {
+
+		signals.showHelpersChanged.dispatch( showHelpers.getValue() );
+
+	} );
+	showHelpersRow.add( showHelpers );
+	container.add( showHelpersRow );
 
 	return container;
 

+ 3 - 0
editor/js/Strings.js

@@ -310,6 +310,7 @@ function Strings( config ) {
 			'sidebar/settings/shortcuts/focus': 'Focus',
 
 			'sidebar/settings/viewport/grid': 'Grid',
+			'sidebar/settings/viewport/helpers': 'Helpers',
 
 			'sidebar/history': 'History',
 			'sidebar/history/persistent': 'persistent',
@@ -628,6 +629,7 @@ function Strings( config ) {
 			'sidebar/settings/shortcuts/focus': 'Focus',
 
 			'sidebar/settings/viewport/grid': 'Grille',
+			'sidebar/settings/viewport/helpers': 'Helpers',
 
 			'sidebar/history': 'Historique',
 			'sidebar/history/persistent': 'permanent',
@@ -920,6 +922,7 @@ function Strings( config ) {
 			'sidebar/settings/shortcuts/focus': '聚焦',
 
 			'sidebar/settings/viewport/grid': '网格',
+			'sidebar/settings/viewport/helpers': 'Helpers',
 
 			'sidebar/history': '历史记录',
 			'sidebar/history/persistent': '本地存储',

+ 11 - 1
editor/js/Viewport.js

@@ -38,6 +38,7 @@ function Viewport( editor ) {
 	var camera = editor.camera;
 	var scene = editor.scene;
 	var sceneHelpers = editor.sceneHelpers;
+	var showSceneHelpers = true;
 
 	var objects = [];
 
@@ -688,6 +689,15 @@ function Viewport( editor ) {
 
 	} );
 
+	signals.showHelpersChanged.add( function ( showHelpers ) {
+
+		showSceneHelpers = showHelpers;
+		transformControls.enabled = showHelpers;
+
+		render();
+
+	} );
+
 	signals.cameraResetted.add( updateAspectRatio );
 
 	// animations
@@ -743,7 +753,7 @@ function Viewport( editor ) {
 		if ( camera === editor.viewportCamera ) {
 
 			renderer.autoClear = false;
-			renderer.render( sceneHelpers, camera );
+			if ( showSceneHelpers === true ) renderer.render( sceneHelpers, camera );
 			viewHelper.render( renderer );
 			renderer.autoClear = true;