瀏覽代碼

fix(core): issue with active camera

alvarosabu 2 年之前
父節點
當前提交
db44648358
共有 2 個文件被更改,包括 5 次插入3 次删除
  1. 3 2
      packages/tres/src/core/useCamera/index.ts
  2. 2 1
      packages/tres/src/core/useScene/component.ts

+ 3 - 2
packages/tres/src/core/useCamera/index.ts

@@ -144,11 +144,11 @@ export function useCamera(): UseCameraReturn {
       state.cameras?.push(camera as OrthographicCamera)
     }
     state.camera = camera
+
+    setState('camera', state.camera)
     return camera
   }
 
-  setState('camera', state.camera)
-
   /**
    * Update camera aspect ratio and projection matrix
    *
@@ -171,6 +171,7 @@ export function useCamera(): UseCameraReturn {
       camera.aspect = state.aspectRatio.value
     }
     camera.updateProjectionMatrix()
+    setState('camera', camera)
   }
 
   /**

+ 2 - 1
packages/tres/src/core/useScene/component.ts

@@ -19,9 +19,10 @@ export const Scene = defineComponent({
     setState('scene', scene.value)
 
     onLoop(() => {
+      if (!activeCamera.value) return
       raycaster.value.setFromCamera(pointer.value, activeCamera.value)
 
-      if (renderer?.value && activeCamera?.value && scene?.value) {
+      if (renderer?.value && activeCamera && scene?.value) {
         renderer.value.render(scene?.value, activeCamera.value)
       }
     })