bill 10 月之前
父节点
当前提交
81724f2686
共有 3 个文件被更改,包括 23 次插入4 次删除
  1. 1 1
      src/api/fuse-model.ts
  2. 1 0
      src/sdk/association/fuseMode.ts
  3. 21 3
      src/sdk/association/index.ts

+ 1 - 1
src/api/fuse-model.ts

@@ -69,7 +69,7 @@ const serviceToLocal = (
         url = serviceModel.sceneData.modelGlbUrl;
     }
     try {
-      url = JSON.parse(url)[0];
+      url = JSON.parse(url);
     } catch (e) {
       console.error(url, e);
     }

+ 1 - 0
src/sdk/association/fuseMode.ts

@@ -58,6 +58,7 @@ const setModels = (sdk: SDK, models: FuseModels, oldModels: FuseModels) => {
     const itemRaw = toRaw(item);
     let sceneModel: SceneModel;
     try {
+      console.log('添加模型', itemRaw)
       sceneModel = sdk.addModel({
         ...itemRaw,
         ...modelRange,

+ 21 - 3
src/sdk/association/index.ts

@@ -19,14 +19,32 @@ export const getSupperPanoModel = () => {
     if (!sdk) return;
     clearInterval(interval);
 
-    sdk.sceneBus.on("cameraChange", () => {
+    let prevActive: SceneModel | undefined = undefined
+    const setActive = (active: SceneModel | undefined) => {
+      if (prevActive === active) return;
+      if (prevActive) {
+        prevActive!.bus.off('transformChanged', update)
+      }
+      if (active) {
+        active.bus.on('transformChanged', update)
+      }
+      prevActive = active;
+    }
+
+
+    const update = () => {
       const data = sdk.canTurnToPanoMode();
       if (data?.model) {
-        supperModel.value = getFuseModel(data.model)!;
+        const smodel = getFuseModel(data.model)!
+        supperModel.value = smodel;
       } else {
         supperModel.value = null;
       }
-    });
+      setActive(data.model)
+    }
+
+    sdk.sceneBus.on("cameraChange", update);
+    
   }, 16);
 
   return supperModel;