THREE.js 使用 sceneLoader 加载由 THREE.js 编辑器创建的场景时出现异常
THREE.js Exception when using sceneLoader to load scene created by THREE.js Editor
错误在 3 .js:12917 上Uncaught TypeError: Cannot read property 'opacity' of undefined
我正在使用的场景文件是:
{
"metadata": {
"version": 4.3,
"type": "Object",
"generator": "ObjectExporter"
},
"geometries": [
{
"uuid": "7F5BC6A2-4B74-4049-8AF8-40A5EF310430",
"type": "CubeGeometry",
"width": 100,
"height": 100,
"depth": 100,
"widthSegments": 1,
"heightSegments": 1,
"depthSegments": 1
}],
"materials": [
{
"uuid": "95D0C78A-2066-4A8D-9F46-73B3038E55DE",
"type": "MeshBasicMaterial",
"color": 16777215,
"opacity": 1,
"transparent": false,
"wireframe": false
}],
"object": {
"uuid": "E0E0DAAE-012A-49DB-BC1B-2878BCA7F0DA",
"type": "Scene",
"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
"children": [
{
"uuid": "E60D8291-4E35-4365-A98E-7AEA1D1D433F",
"name": "Cube 1",
"type": "Mesh",
"geometry": "7F5BC6A2-4B74-4049-8AF8-40A5EF310430",
"material": "95D0C78A-2066-4A8D-9F46-73B3038E55DE",
"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]
}]
}
}
我已经检查过,它确实加载成功并且是有效的 JSON(JSONLint);我还测试了JSONLoader以成功加载JSON模型。我似乎正在使用最新版本。场景是在THREE.js编辑器中创建的,恐怕我不知道如何在它之外创建一个场景。
根据 https://github.com/mrdoob/three.js/issues/4259,你应该使用ObjectLoader:
function loaded(scene) {
...
renderer.render(scene, camera)
}
new THREE.ObjectLoader().load("scene.js", loaded)
显然问题出在编辑器创建的场景文件上。我刚刚尝试通过三个场景示例运行场景文件.js并得到相同的错误。
相关文章:
- 在Three.js中导出网格会提高性能吗
- 如何在three.js上添加两个向量
- Three.js Points Rotation
- 无法读取属性'材料'未定义的Three.js
- Potree/Three.js测量问题
- Three.JS OBJ模型未显示
- 有没有一种方法可以获得three.js的最小/lite版本
- JS和three.JS,在浏览器中进行参数测试
- 参数列表Three.js之后的未捕获语法错误:缺少)
- 如何在three.js中有效地使用TraingleStripDrawMode
- 通过拖动可以更改三维模型对象在Three.js场景中的位置
- three.js:如何让透明的png精灵投射和接收阴影
- Three.js更改材质
- three.js EffectComposer's渲染目标
- 单击以将相机放置在Three js中的对象附近
- Three.js Three.投影仪已移至
- THREE.js轨道控制不工作
- Three.js,WebGL,渲染六幅图像的全景图
- 如何在three.js中为三角形添加纹理
- Three.js CanvasRenderer,在将图像纹理设置为平面时出现问题