【发布时间】:2020-11-09 03:18:57
【问题描述】:
我一直在尝试使用 react-three-fiber 将 GLTF 模型加载到我的 gatsby 站点中,但似乎无法加载它。这看起来应该很简单,但我是 Gatsby 和 Threejs 的新手,想知道是否可以得到一些指导。
我的模型存储为 static/models/crerar.glb,我使用 gltfjsx 生成了一个模型组件。我试过只引用“models/crerar.glb”,但也没有运气。
在 index.js 中,我有:
import Layout from "../components/layout"
import SEO from "../components/seo"
import React, { Suspense, useRef, useState } from "react"
import { Canvas, useFrame, useLoader } from "react-three-fiber"
import Model from "../components/Crerar"
const IndexPage = () => (
<Layout>
<Canvas>
<ambientLight intensity={0.2} />
<Model />
</Canvas>
</Layout>
)
export default IndexPage
在 Crerar.js 中(存储在组件中)
/*
auto-generated by: https://github.com/react-spring/gltfjsx
*/
import * as THREE from 'three'
import React, { useRef } from 'react'
import { useLoader } from 'react-three-fiber'
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'
export default function Model(props) {
const group = useRef()
const { nodes, materials } = useLoader(GLTFLoader, '../static/models/crerar.glb')
return (
<group ref={group} {...props} dispose={null}>
<mesh material={nodes.mesh_0.material} geometry={nodes.mesh_0.geometry} />
</group>
)
}
【问题讨论】:
-
如果您在控制台中看到任何错误,您能分享一下吗?
-
是的,我得到了一些 - 1)SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data parse GLTFLoader.js:248 load GLTFLoader.js:155 load 三.module.js:36856 2) 未捕获的错误:模型在渲染时暂停,但未指定备用 UI。
-
以及 -
组件出现上述错误:在 Canvas 中的 Model (at pages/index.js:65) -
您还应该提供您的
gatbsy-config.js文件,以查看您是否启用了静态文件加载器。
标签: reactjs three.js gatsby react-three-fiber