threejs

avatar
作者
猴君
阅读量:4

1.场景清空,释放内容

// 假设你已经有一个Three.js的场景对象scene   // 函数:清空场景中的所有对象 function clearScene(scene) {     while(scene.children.length > 0){         const object = scene.children[0];                  if(object.isMesh) {             // 如果有几何体和材质,也进行清理             object.geometry.dispose();             if(object.material.isMaterial) {                 cleanMaterial(object.material);             } else {                 // 材质组是数组,所以我们需要遍历它                 for(const material of object.material) cleanMaterial(material);             }         }                  scene.remove(object);  // 从场景中移除对象     } }   // 辅助函数:清理材质资源 function cleanMaterial(material){     material.dispose(); // 清理材质     if(material.map) material.map.dispose(); // 清理贴图     if(material.lightMap) material.lightMap.dispose();     if(material.bumpMap) material.bumpMap.dispose();     if(material.normalMap) material.normalMap.dispose();     if(material.specularMap) material.specularMap.dispose();     if(material.envMap) material.envMap.dispose();     // ... 清理其他你使用的材质资源 }   // 使用方法: clearScene(scene);

2.选中物体

        如果放在像若依这种前端框架中,会有菜单栏导致计算坐标的位置发生偏移

使用clientX配合getBoundingClientRect函数计算坐标即可

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!