soy bastante nuevo en reaccionar y three.js, estoy tratando de renderizar un archivo .gltf usando el método const Loader = new GLTFLoader() sin embargo, cuando se renderiza el sitio web y lo veo en el navegador, veo el mensaje de error, Ocurrió un error SyntaxError: token inesperado < en JSON en la posición 0 , si alguien supiera en qué dirección señalarme, sería genial.
aquí está el código
rende.js:
import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; export default class Rende extends Component { componentDidMount() { var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); renderer.setClearColor(0x424242, 1); renderer.setSize(window.innerWidth, window.innerHeight); document.getElementById("scene").appendChild(renderer.domElement); const loader = new GLTFLoader(); loader.load( "untitled.gltf", (gltf) => { scene.add(gltf.scene); }, (xhr) => { console.log(`${(xhr.loaded / xhr.total) * 100}% loaded`); }, (error) => { console.error("An error happened", error); } ); } render() { return <div id="scene" className="potato"></div>; } }y la página del componente correspondiente
casa.jsx:
export default function Home() { return ( <Fragment> {" "} <div key={1} className="class"> tagline </div> <Rende /> </Fragment> ); }si alguien puede ayudar sería muy apreciado. Gracias
Me sucedió de primera mano cuando trabajé con threejs al principio y estaba escribiendo la ruta incorrecta para mi .gltf
Hice una bifurcación de un sandbox "Three.js import GLTF" en codesandbox, donde reemplacé la ruta con una aleatoria e incorrecta.
Si abre la consola (en la bifurcación de sandbox), verá el mismo error.
Esto se debe a que la búsqueda aún tiene el estado 200 pero con HTML en lugar del JSON de su modelo,
debido a la ruta incorrecta y al comportamiento del servidor de una aplicación de una sola página, que generalmente devuelve el index.html, a menos que sea una ruta perteneciente a uno de los activos, por defecto con reactjs y otras bibliotecas/frameworks.
Dado que la ruta es incorrecta, el servidor devuelve su html en lugar de su modelo, por lo que el analizador JSON arroja el mismo error, porque en realidad, el primer carácter recibido es < .
...como puede ver en esta pantalla desde las herramientas de desarrollo del navegador > pestaña Red, mientras ejecuta la zona de pruebas
Intente verificar las herramientas de desarrollo de la red mientras ejecuta su sitio web para verificar si su respuesta de búsqueda .gltf es HTML (en lugar de su modelo JSON). Si es así, la ruta de su modelo es incorrecta.