如何在框架中的 gltf 中使用内部相机?

How to use inner camera in gltf in aframe?

我有一个gltf模型,里面包含相机、模型和相机动画。加载后,它们成为一个 gltf 实体。我无法使用 secondcamera el. SetAttribute ('camera ','active', true ')" 来更换相机。怎么用里面的摄像头。

这个可以修改三个。 JS

this.content.traverse((node) => {

if (node.isCamera && node.name === name) {

this.activeCamera = node;

}

});

this.renderer.render( this.scene, this.activeCamera )

但是,如何在aframe中使用gltf中的内置摄像头?

您可以保留对相机的引用:

var model_camera = null;
// wait until the model is loaded
entity.addEventListener("model-loaded", e => {
  const mesh = entity.getObject3D("mesh");
  mesh.traverse(node => {
    // assuming there is one camera
    if (node.isCamera) model_camera = node;
  })
})

当您需要使用它时,只需替换scene.camera property中的活动相机即可:

entity.sceneEl.camera = model_camera;

this example 中查看包含两个不同相机的模型。


Afaik 不涉及清理,只要您在切换相机时不手动禁用它们,look-controlswasd-controls 仍然可以工作。

camera system 具有交换活动相机的功能,但您需要为相机引用添加 <a-entity> 包装器(因为系统会尝试对所提供的执行 getObject3D('camera')实体)。