OrbitControls不是构造函数

时间:2016-12-14 00:25:55

标签: javascript three.js webvr

我一直在努力创建一个WebVR环境超过一周,我的场景以三个j呈现,但我似乎无法使VR控件工作。

我试过了:

在我的node_modules中添加包并导入它们:

import threeOrbitControls from 'three-orbit-controls';
const OrbitControls = threeOrbitControls(THREE);
const controls = new THREE.OrbitControls(camera, element);

但这引发了错误:

Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_1_three__.OrbitControls is not a constructor(…)

我试图导入的其他一些模块说三个在模块中是未定义的,因为函数以THREE.开头,但我不能进入那个模块而只导入三个因为如果其他人运行{{1}他们仍会得到同样的错误。

我尝试在我的index.html中添加脚本(以及正在下载的源代码),但是还没有定义THREE ......

我猜对了。我认为这是因为webpack并查找了一个WebVR webpack存储库来查看该人如何处理它。我发现this repository但是在安装软件包并运行webpack时,它说WebVRManager不是构造函数。老实说,我不知道这里出了什么问题。

这是我用来运行项目的代码(现在非常混乱)。

npm install

2 个答案:

答案 0 :(得分:1)

我下载了源代码,需要执行require(./OrbitControls.js)并在源代码中添加module.exports = THREE.OrbitControls

答案 1 :(得分:0)

请尝试以这种方式导入三轨道控件:

const OrbitControls = require( 'three-orbit-controls' )( THREE );

它应该工作。我遇到了和你一样的问题,上面的解决方案也奏效了。三轨道控制模块导出解决方案似乎有问题。