【发布时间】: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