我有一个描述应该渲染的模型的对象列表。如果您尝试通过循环运行它们,它们不会显示。
function Model({model, position}) {
const result = useLoader(GLTFLoader, './models/car/top/topFront.glb')
return <primitive
object={result.scene}
position={[1,1,1]}
onPointerOver={()=>changeToSelect(result)}
onPointerOut={()=>chageToUnselect(result)}
material={
new THREE.MeshPhysicalMaterial({ color: 'black', flatShading: true })
}
/>
}
{cars.forEach(car=>{
<Model
model={car['path']}
position={car['position']}
/>
})}
这里是对象:{name:'中顶部',path:'./models/car/top/topMiddle.glb',position:'1,3,1'}
尝试输出标准元素时它也不起作用:
{cars.forEach(()=>{
<mesh>
<boxGeometry />
<meshStandardMaterial />
</mesh>
})}
我将 forEach 转换为映射并添加“return”
{cars.map((car, i)=>{
return <Model
key={i}
model={car['path']}
position={car['position']}
/>
})}