From 6c238c4ff0fb437de1983eed6b7f340b06402341 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 17 六月 2024 16:32:37 +0800 Subject: [PATCH] # --- src/components/camera.jsx | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/components/camera.jsx b/src/components/camera.jsx index b450ce9..8d61220 100644 --- a/src/components/camera.jsx +++ b/src/components/camera.jsx @@ -1,16 +1,29 @@ -import React, { useState, useEffect } from 'react'; -import { useThree } from '@react-three/fiber'; +import React, { useState, useEffect, useRef } from 'react'; +import { useThree, useFrame } from '@react-three/fiber'; import { PerspectiveCamera, } from '@react-three/drei'; +import { useStore } from '@/store'; const Camera = (props) => { - const threeObj = useThree(); - const camera = threeObj.camera; + const cameraRef = useRef(); + const { camera } = useThree(); + + const store = useStore(); + + useFrame((state, delta) => { + const { autoCruise, lookAt } = store; + + if (autoCruise) { + cameraRef.current.position.set(lookAt.x - 0, lookAt.y + 200, lookAt.z + 500); + camera.lookAt(lookAt.x, lookAt.y + 100, lookAt.z); + } + }) return ( <> <PerspectiveCamera + ref={cameraRef} makeDefault position={[0, 350, 1150]} fov={48} -- Gitblit v1.9.1