From 6e60575dc5377977bd7118b5560e9ee6ba2f9fe7 Mon Sep 17 00:00:00 2001 From: luoyifan Date: Tue, 10 Jun 2025 11:39:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=A7=E7=8E=87=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/controls/DragControl.ts | 12 +++--------- src/core/manager/EntityManager.ts | 17 +++++------------ vite.config.ts | 1 + 3 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/core/controls/DragControl.ts b/src/core/controls/DragControl.ts index 0aad188..902b0c6 100644 --- a/src/core/controls/DragControl.ts +++ b/src/core/controls/DragControl.ts @@ -164,17 +164,11 @@ export default class DragControl implements IControls { * 获取当前鼠标坐标(归一化设备坐标) */ private getMousePosition(clientX: number, clientY: number): THREE.Vector2 { - // const rect = this.domElement.getBoundingClientRect() - // return new THREE.Vector2( - // ((clientX - rect.left) / rect.width) * 2 - 1, - // ((clientY - rect.top) / rect.height) * -2 + 1 - // ) + const rect = this.domElement.getBoundingClientRect() return new THREE.Vector2( - clientX / this.viewport.renderer.domElement.offsetWidth * 2 - 1, - (clientY / this.viewport.renderer.domElement.offsetHeight * -2 + 1) + ((clientX - rect.left) / rect.width) * 2 - 1, + ((clientY - rect.top) / rect.height) * -2 + 1 ) - // _point.x = e.offsetX / this.renderer.domElement.offsetWidth - // _point.y = e.offsetY / this.renderer.domElement.offsetHeight } /** diff --git a/src/core/manager/EntityManager.ts b/src/core/manager/EntityManager.ts index 7e33821..47135d1 100644 --- a/src/core/manager/EntityManager.ts +++ b/src/core/manager/EntityManager.ts @@ -462,18 +462,11 @@ export default class EntityManager { getObjectByCanvasMouse(event: MouseEvent): Object3DLike[] { const _domElement = this.viewport.renderer.domElement - // const rect = _domElement.getBoundingClientRect() - // const _pointer = new Vector2() - // _pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1 - // _pointer.y = -(event.clientY - rect.top) / rect.height * 2 + 1 - - - const _point = new THREE.Vector2() - _point.x = event.offsetX / _domElement.offsetWidth - _point.y = event.offsetY / _domElement.offsetHeight - - - this.viewport.raycaster.setFromCamera(_point, this.viewport.camera) + const rect = _domElement.getBoundingClientRect() + const _pointer = new Vector2() + _pointer.x = (event.clientX - rect.left) / rect.width * 2 - 1 + _pointer.y = -(event.clientY - rect.top) / rect.height * 2 + 1 + this.viewport.raycaster.setFromCamera(_pointer, this.viewport.camera) const _intersections = this.viewport.raycaster.intersectObjects(this._selectableObjects, true) if (!_intersections || _intersections.length === 0) { diff --git a/vite.config.ts b/vite.config.ts index 786d83c..c8c4867 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -17,6 +17,7 @@ export default defineConfig({ } }, server: { + host: '0.0.0.0', port: 7791, open: false, proxy: {