Camera 如何在一帧中使用gltf中的内置摄像头?

Camera 如何在一帧中使用gltf中的内置摄像头?,camera,aframe,gltf,Camera,Aframe,Gltf,我有一个gltf模型,它包含相机、模型和相机动画。加载后,它们成为gltf实体。我不能使用第二个摄像头。SetAttribute('camera','active',true')”更改摄像头。如何在其中使用摄像头 这可以在three.JS中修改 this.content.traverse((node) => { if (node.isCamera && node.name === name) { this.activeCamera = node; } }); th

我有一个gltf模型,它包含相机、模型和相机动画。加载后,它们成为gltf实体。我不能使用第二个摄像头。SetAttribute('camera','active',true')”更改摄像头。如何在其中使用摄像头

这可以在three.JS中修改

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

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

this.activeCamera = node;

}

});

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


但是,如何在帧中使用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;
  })
})
当您需要使用时,只需在以下位置替换活动摄像头:

使用包含两个不同摄像头的模型进行查看


如果不涉及清理,只要切换相机时不手动禁用,
look控件
wasd控件
仍将工作

具有交换活动摄影机的功能,但您需要为摄影机引用添加包装(当系统尝试对提供的实体执行
getObject3D(“摄影机”)
时)

entity.sceneEl.camera = model_camera;