From 39e7d257caeae7c241544af7281be1d70747bb8a Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期五, 19 四月 2024 15:23:07 +0800 Subject: [PATCH] Merge branch 'dev-threejs' --- src/views/screen/components/screen-map-three/experience/world/map.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/src/views/screen/components/screen-map-three/experience/world/map.js b/src/views/screen/components/screen-map-three/experience/world/map.js index fd648d6..1dd127f 100644 --- a/src/views/screen/components/screen-map-three/experience/world/map.js +++ b/src/views/screen/components/screen-map-three/experience/world/map.js @@ -271,4 +271,45 @@ ease: 'power1.out' }) } + + destroy() { + this.removeMouseEvent(); + this.disposeObject(); + this.removeObject(); + this.resetObject(); + } + + disposeObject() { + this.map.traverse((child) => { + if (child.material) { + // 鍙兘瀛樺湪鏉愯川涓烘暟缁勭殑鎯呭喌 + if (child.material instanceof Array) { + child.material.forEach((item) => item.dispose()); + } else { + child.material.dispose(); + if (child.material.map) { + child.material.map.dispose(); + } + } + } + if (child.geometry) { + child.geometry.dispose(); + child.geometry.attributes = null; // 杩欎簺灞炴�у寘鎷琾osition, normal, uv绛夌瓑 + } + child = null; + }); + this.topFaceMaterial.dispose(); + this.sideMaterial.dispose(); + } + + removeObject() { + this.scene.remove(this.map); + } + + resetObject() { + this.map = null; + this.provinceMeshList = null; + this.labelList = null; + this.textureLoader = null; + } } \ No newline at end of file -- Gitblit v1.8.0