【问题标题】:TypeError: Cannot read property 'center' of undefined (Three.js + React.js)TypeError:无法读取未定义的属性“中心”(Three.js + React.js)
【发布时间】:2018-08-23 16:58:06
【问题描述】:

我遇到了以下错误:

我正在尝试在我的 react-app 中加载一个 .OBJ 文件,但我遇到了这个错误。我试过像一个类似的问题一样使用 object.traverse ,但什么也没有。我将把我的代码留在这里:

import React, { Component } from "react";
import "./App.css";
const THREE = require('three');
const OBJLoader = require('three-obj-loader');
OBJLoader(THREE);

class App 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.setSize(window.innerWidth / 2, window.innerHeight / 2);
    document.body.appendChild(renderer.domElement);

    var loader = new THREE.OBJLoader();
    loader.load('/3d/obj.OBJ', verLoad);

    function verLoad(geometry, materials) {

      var mesh = new THREE.Mesh(geometry, materials);
      scene.add(mesh);
      mesh.position.z = -10;

    }

    camera.position.z = 5;

    function animate() {
      requestAnimationFrame(animate);
      renderer.render(scene, camera);
    }
    animate();

  }

  render() {
    return (
      <div className="App">
      </div>
    );
  }
}

export default App;

【问题讨论】:

  • 我已经尝试了该问题的答案代码,但没有用@Andreas
  • 您将THREE.Mesh 的实例作为另一个THREE.Mesh 构造函数中的第一个参数传递。 THREE.Mesh 不能这样工作,它需要 THREE.Geometry 作为它的第一个参数。
  • 简短的回答是:您可能切换了网格和几何参数。

标签: javascript reactjs three.js


【解决方案1】:

根据OBJLoader 文档,load 方法中的成功回调已经接受THREE.Mesh 对象,因此无需创建一个。尝试以下版本的 verLoad 函数:

function verLoad(obj) {
    obj.position.z = -10;
    scene.add(obj);
}

【讨论】:

  • @soalribeiro 如果它与您指定它不起作用的副本中的方法完全相同,这怎么可能是答案(“我已经尝试了回答这个问题,没用")? O.o
  • 我完全同意 O.o
  • 在另一个问题中,解决问题的是object.traverse。就我而言,它不起作用,但这段代码有效。我只是取消了创建网格的行`var mesh = new THREE.Mesh(geometry, materials);`。在另一个问题中,我不明白这是问题所在。如果这个答案解决了我的问题,有什么关系?
猜你喜欢
  • 2015-11-09
  • 2018-02-27
  • 2021-11-08
  • 2021-10-24
  • 2019-12-20
  • 2021-04-12
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多