Я пытаюсь загрузить модель gltf в реагирующее три волокна (R3F), и мне приснился кошмар. Я пытался найти ответ, и были люди с похожей проблемой, но я не смог решить свою проблему.
Я продолжаю получать это в консоли:
at JSON.parse (<anonymous>)
at GLTFLoader.parse (GLTFLoader.js:213)
at Object.onLoad (GLTFLoader.js:145)
at XMLHttpRequest.<anonymous> (three.module.js:35829)
Насколько я знаю, в моем коде нет ничего плохого. Я пытался написать это загрузкой в модели разными способами. Создатель реагирует на три волокна и загружает модель в свои коды и коробки через несколько дней go примерно так: https://codesandbox.io/s/r3f-gltf-useloader-8nb5i - так что я чувствую, что это не может быть проблемой с R3F. Я заметил, что он использует файл glb, а не файл gltf, поэтому я пошел и нашел модель glb, чтобы проверить, будет ли это иметь значение. Я понял, что у меня также должна быть моя модель в папке publi c, что я и сделал. К сожалению, это не имело значения, и я все еще продолжаю получать проблему.
Я пробовал вот так:
import React, { Suspense } from "react";
import { Canvas, useLoader } from "react-three-fiber";
import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
import * as THREE from "three";
import Box from "./Components/Sphere.Component";
import Plane from "./Components/Plane.Component";
import Controls from "./Components/Controls.Component";
import "./App.css";
const Chair = () => {
const { nodes } = useLoader(GLTFLoader, "../public/mindbreaker.glb");
return (
<mesh geometry={nodes.Cube.geometry}>
<meshStandardMaterial attach="material" color="lightblue" />
</mesh>
);
};
function App() {
return (
<Canvas
camera={{ position: [0, 0, 5] }}
onCreated={({ gl }) => {
gl.shadowMap.enabled = true;
gl.shadowMap.type = THREE.PCFSoftShadowMap;
}}
>
<fog attach="fog" args={["pink", 5, 15]} />
<Plane />
<Controls />
<Box />
<Suspense fallback={null}>
<Chair />
</Suspense>
</Canvas>
);
}
export default App;
Вот человек, у которого была похожая проблема: https://discourse.threejs.org/t/json-or-gltf-loader-for-three-js-in-react/3898/10 но я все еще не совсем понимаю, как решить эту проблему.
Любая помощь будет принята с благодарностью, я с нетерпением ждал возможности поиграть с R3F, но, похоже, я упал на первое препятствие. Кто-нибудь, пожалуйста, спасите меня от этой головной боли! хаха.
Спасибо!