From 43e38caece60d0fd30b8ca444a31adc215732740 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 10 五月 2024 14:59:19 +0800
Subject: [PATCH] #

---
 src/components/shelf.jsx |   43 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/src/components/shelf.jsx b/src/components/shelf.jsx
index c084e7c..387d77b 100644
--- a/src/components/shelf.jsx
+++ b/src/components/shelf.jsx
@@ -1,28 +1,53 @@
-import { useState, useMemo, useRef, useEffect } from 'react';
-import { useGLTF } from '@react-three/drei';
-import { MODEL_SHELF_SCALE } from '@/config/setting';
+import { useMemo, useState, useEffect } from 'react';
+import { useGLTF, useFBX } from '@react-three/drei';
+import * as THREE from 'three';
+import { MODEL_SHELF_SCALE } from '@/config/setting'
+import { useStore } from '@/store';
+import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader';
+import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
+import Box from './box';
 import * as Common from '../utils/common';
 
 const Shelf = (props) => {
-    const { position = [0, 300, 0], rotationY = 0 } = props;
+    const { no, position = [0, 300, 0], rotationY = 0 } = props;
+    const state = useStore();
+
+    // const { nodes, materials } = useMemo(() => {
+    //     return useGLTF('/models/shelf/row.glb');
+    // }, [])
 
     const model = useMemo(() => {
-        const fbx = useGLTF('/models/shelf/row.glb');
+        const fbx = useFBX('/models/shelf/row.fbx');
         if (!fbx.castShadow) {
             Common.setShadow(fbx);
         }
-        fbx.scale.set(MODEL_SHELF_SCALE, MODEL_SHELF_SCALE, MODEL_SHELF_SCALE);
+        // Common.setColor(fbx, 0x778ca3);
+        fbx.scale.set(MODEL_SHELF_SCALE.x, MODEL_SHELF_SCALE.y, MODEL_SHELF_SCALE.z);
         return fbx.clone();
     }, [])
 
     useEffect(() => {
-
-    }, []);
+        state.shelfList[no] = position;
+    }, [props]);
 
     return (
         <>
             <group rotation-y={rotationY} position={position}>
-                <primitive object={model} castShadow />
+                {/* <primitive
+                    castShadow
+                    receiveShadow
+                    object={nodes.鐗╀欢_1001}
+                    material={materials['鏉愯川_1.002']}
+                    position={[0, 99, 0]}
+                    scale={50000}
+                /> */}
+
+                <primitive object={model} castShadow position={[0, 1, 0]} />
+                {/* <mesh position={[0, 100, 0]}>
+                    <boxGeometry args={[150, 200, 30]} />
+                    <meshStandardMaterial color={'orange'} transparent={true} opacity={.5} />
+                </mesh> */}
+                {/* <Box rotationY={0} position={[0, 0, 0]} /> */}
             </group>
         </>
     )

--
Gitblit v1.9.1