Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 结合Object3D组、透视摄影机和FlyControl的意外移动行为_Three.js - Fatal编程技术网

Three.js 结合Object3D组、透视摄影机和FlyControl的意外移动行为

Three.js 结合Object3D组、透视摄影机和FlyControl的意外移动行为,three.js,Three.js,为了编写HUD,我在Object3D中插入了一个摄像头,目的是将HUD元素放置在同一个Object3D中 我现在不更新相机,而是更新HUD,希望更新其中的所有对象。但是, 移动鼠标时,摄影机似乎围绕场景中心旋转 当按下W键(它过去用来向前移动摄影机)时,我现在在场景中心的前面侧移 包括此处描述的压缩线: scene = new THREE.Scene(); hud = new THREE.Object3D(); camera = new THREE.PerspectiveCamera(...

为了编写HUD,我在Object3D中插入了一个摄像头,目的是将HUD元素放置在同一个Object3D中

我现在不更新相机,而是更新HUD,希望更新其中的所有对象。但是,

  • 移动鼠标时,摄影机似乎围绕场景中心旋转
  • 当按下W键(它过去用来向前移动摄影机)时,我现在在场景中心的前面侧移
包括此处描述的压缩线:

scene = new THREE.Scene();
hud = new THREE.Object3D();
camera = new THREE.PerspectiveCamera(...);
hud.add(camera);
scene.add(hud);

control = new THREE.FlyControls(hud, renderer.domElement);

可以将HUD Object3D添加到摄影机,而不是相反。这应该符合人们的期望

hud = new THREE.Object3D();
camera = new THREE.PerspectiveCamera(...);
camera.add(hud);
scene.add(camera);

control = new THREE.FlyControls(camera, renderer.domElement);

谢谢我现在知道,关键是在向摄影机添加元素后将摄影机读取到场景中!