【发布时间】:2018-08-29 20:20:12
【问题描述】:
我使用 io_three 插件从 Blender 导出了一个 3D 模型。
现在我正在尝试使用这样的代码将此模型加载到 ThreeJS 中。
import React, { Component } from 'react';
import * as THREE from 'three';
var loader = new THREE.JSONLoader();
loader.load('./making_a_face10.json', handle_load);
我一直收到相同的错误消息。
Unexpected token < in JSON at position 0
我尝试过使用 THREE.ObjectLoader() 和这个选项 https://github.com/tweedegolf/parsed-model,但它一直在 JSON 的位置 0 出现错误。
附带说明一下,我可以像这样访问 JSON:
var JSONdata = require('./making_a_face10.json');
这确实暴露了 JSON 中的数据,但我希望 ThreeJS 加载器能够工作。
然后我找到了这个示例https://threejs.org/examples/#webgl_loader_json_blender,当我查看源代码时,它显示“模型”正在作为 .js 文件导入??,即他们正在像这样加载它:
loader.load( 'models/animated/monster/monster.js', function ( geometry, materials )...
有足够的材料来解释我想要做什么,但没有一个指向将模型加载为 .js 文件。
还有两个注意事项 - 我的 JSON 文件的格式看起来非常像 https://github.com/mrdoob/three.js/blob/master/examples/models/animated/monster/monster.js,我正在使用 npm start 运行本地服务器
如果有哪位高手能帮助我,我将不胜感激。
已解决
在 React 项目文件夹中。 .JSON 文件位于我的 /src 文件夹中。它应该在我的/public 文件夹中。
【问题讨论】:
-
该错误让我认为您的导入无法正常工作。你在使用 webpack 吗?您可能需要添加一个 json-loader 才能使其正常工作。
-
查看这个在 Webpack 中加载静态 JSON 文件的示例。您应该尝试将其作为变量导入:stackoverflow.com/questions/43735486/…
-
这个错误表明你没有得到你认为你得到的文件——它告诉你文件的初始字符是
<。当我尝试从 API 加载某些内容时,我通常会看到此错误,并且收到 404 或 500 错误,而不是我期望的数据。我知道你正在加载一个本地文件,所以它可能不是 HTML 响应,但是......也许这对你来说是一个线索? -
天啊,伙计。我只是做了完全相同的事情。 Webpack 让我们认为一切都是捆绑的。
标签: json reactjs three.js blender