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