我试图按照本示例“ https://threejsfundamentals.org/threejs/lessons/threejs-webvr-point-to-select.html”在VR场景中添加控制器。我想用找到的OBJ模型替换行指针,但是似乎由于某种原因它一直在加载,或者什么都不加载。
...
var gun = new OBJLoader();
gun.load('models/CA-87.obj');
this.controllers = [];
...
for (let i = 0; i < 2; ++i) {
const controller = renderer.vr.getController(i);
//controller.addEventListener('select', selectListener);
//controller.addEventListener('selectstart', selectListener);
//controller.addEventListener('selectend', endListener);
scene.add(controller);
controller.add(gun);
this.controllers.push({controller, gun});
}
...
我得到的错误是这些 “ THREE.Object3D.add:对象不是THREE.Object3D的实例。>对象{管理器:{…},材料:空}”。我希望能够在现场看到这些模型,并跟随我使用的实际vive控制器的运动,但是它们不会出现。
答案 0 :(得分:0)
gun
是一个对象加载器,而不是对象。根据{{3}},OBJLoader在回调中提供Object3D。所以...
let loader = new OBJLoader();
loader.load('models/CA-87.obj', gun => {
// ...
controller.add(gun);
// ...
});