#
luxiaotao1123
2024-04-26 73e5e4f17c23a7f4832ea2bb36e1bd3799ab9ad9
src/components/box.jsx
@@ -2,37 +2,18 @@
import { useFrame } from '@react-three/fiber';
import { useFBX, useAnimations } from '@react-three/drei';
import * as THREE from 'three';
const setShadow = (obj) => {
    obj.castShadow = true;
    obj.receiveShadow = true;
    if (obj.children) {
        obj.children.forEach((child) => {
            setShadow(child);
        });
    }
};
const setColor = (obj) => {
    if (obj.material) {
        obj.material.color.set(0x4680BF);
    }
    if (obj.children) {
        obj.children.forEach((child) => {
            setColor(child);
        });
    }
};
import { MODEL_BOX_SCALE } from '@/config/setting'
import * as Common from '../utils/common';
const Box = (props) => {
    const { position = [0, 300, 0] } = props;
    const { position = [0, 300, 0], rotationY = 0 } = props;
    const boxModel = useMemo(() => {
        const fbx = useFBX('/models/box/box.fbx');
        if (!fbx.castShadow) {
            setShadow(fbx);
            Common.setShadow(fbx);
        }
        fbx.scale.set(MODEL_BOX_SCALE, MODEL_BOX_SCALE, MODEL_BOX_SCALE);
        return fbx.clone();
    }, [])
@@ -42,7 +23,7 @@
    return (
        <>
            <group rotation={[0, 0, 0]} scale={0.5} position={position}>
            <group rotation-y={rotationY} position={position}>
                <primitive object={boxModel} castShadow />
            </group>
        </>