| | |
| | | import { useMemo, useState, useEffect } from 'react'; |
| | | import { useGLTF } from '@react-three/drei'; |
| | | import { useGLTF, useFBX } from '@react-three/drei'; |
| | | import * as THREE from 'three'; |
| | | import { MODEL_SHELF_SCALE } from '@/config/setting' |
| | | 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 { nodes, materials } = useGLTF('/models/shelf/row.glb'); |
| | | const { nodes, materials } = useMemo(() => { |
| | | return useGLTF('/models/shelf/row.glb'); |
| | | }, []) |
| | | |
| | | return ( |
| | | <> |
| | | <group rotation-y={rotationY} position={position}> |
| | | <primitive |
| | | {/* <primitive |
| | | castShadow |
| | | receiveShadow |
| | | object={nodes.物件_1001} |
| | | material={materials['材质_1.002']} |
| | | position={[0, 0, 0]} |
| | | scale={10000} |
| | | /> |
| | | position={[0, 99, 0]} |
| | | scale={50000} |
| | | /> */} |
| | | <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> |
| | | </> |
| | | ) |