diff --git a/packages/editor/src/cesium/viewPort.ts b/packages/editor/src/cesium/viewPort.ts index 3674457..3458ce3 100644 --- a/packages/editor/src/cesium/viewPort.ts +++ b/packages/editor/src/cesium/viewPort.ts @@ -176,7 +176,6 @@ export default class ViewPort { this._three.transformControls = new TransformControls(this._three.camera, this._three.renderer.domElement); let transformControls = this._three.transformControls; transformControls.addEventListener('change', () => { - transformControls.updateMatrixWorld(); const object = transformControls.object; if (object !== undefined) { this._three.box.setFromObject(object, true); @@ -232,10 +231,11 @@ export default class ViewPort { //controls.enabled = true; this.loop() }); - transformControls.traverse(child => { + const gizmo = transformControls.getHelper(); + gizmo.traverse(child => { child.userData.isTransformControls = true; }) - this._three.sceneHelpers.add(transformControls); + this._three.sceneHelpers.add(gizmo); //相关方法 const attachObject = (object) => { diff --git a/packages/editor/src/components/tree/SceneTree.vue b/packages/editor/src/components/tree/SceneTree.vue index 1dc0d38..ea72d9d 100644 --- a/packages/editor/src/components/tree/SceneTree.vue +++ b/packages/editor/src/components/tree/SceneTree.vue @@ -377,7 +377,7 @@ function handleContextmenuSelect(key: string) { onMounted(async () => { // 此signal必须在nextTick方法前注册,否则会造成viewer中已分发此处却尚未监听 Hooks.useAddOnceSignal("viewerInitCompleted",(viewer) => { - if(viewer.enableEdit){ + if(viewer.edit?.enabled){ contextmenuOptions.push({ label: t("home.Delete"), key: 'delete' diff --git a/packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.Setting.vue b/packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.Setting.vue index 80c9cf5..ec03ccf 100644 --- a/packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.Setting.vue +++ b/packages/editor/src/views/editor/layouts/sidebar/scene/Sidebar.Scene.Setting.vue @@ -45,7 +45,7 @@ + @update:value="handleShowHelpers"/> @@ -144,4 +144,14 @@ function onBackgroundChanged() { function onEnvironmentChanged() { Hooks.useDispatchSignal("sceneEnvironmentChanged", toRaw(environmentSelect.value), toRaw(environmentTexture.value)); } + +function handleShowHelpers(){ + window.viewer.edit = { + enabled: helpers.value, + helpers: true, + gizmo: true + } + + window.viewer.render(); +} \ No newline at end of file diff --git a/packages/editor/src/views/editor/layouts/viewport/Viewport.vue b/packages/editor/src/views/editor/layouts/viewport/Viewport.vue index 743821d..4af1aa0 100644 --- a/packages/editor/src/views/editor/layouts/viewport/Viewport.vue +++ b/packages/editor/src/views/editor/layouts/viewport/Viewport.vue @@ -38,7 +38,9 @@ onMounted(async () => { window.viewer = new Viewer({ container: viewportRef.value, - enableEdit:true, + edit: { + enabled: true + }, request: { baseUrl:"/file/static/" } diff --git a/packages/editor/src/views/preview/index.vue b/packages/editor/src/views/preview/index.vue index 7431751..6ca3b6d 100644 --- a/packages/editor/src/views/preview/index.vue +++ b/packages/editor/src/views/preview/index.vue @@ -34,6 +34,9 @@ onMounted(async () => { window.viewer = new Viewer({ container: viewportRef.value, + edit: { + enabled: false, + }, grid:{ enabled:false, },