bill před 10 měsíci
rodič
revize
81724f2686

+ 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;