如何在A-Frame中检测或选择活动相机?

时间:2016-08-16 20:49:46

标签: aframe

我有一个a-image实体。

当我设置look-at="[camera]"时,它不会指向活动的相机。

当我设置look-at="#camera"(这是活动相机的ID)时,它可以正常工作。

有谁知道为什么它可能不适用于[camera]?我有多个摄像头,但一次只有一个摄像头。

1 个答案:

答案 0 :(得分:0)

[camera]querySelector所以当你执行[camera](这意味着任何具有相机属性的元素,每个相机都有)时,你无法控制哪个相机会被选中。

如果您在摄像机之间切换并想要抓住活动摄像机,则需要在活动摄像机上设置类或属性。

您可以收听camera-set-active事件:

document.querySelector('a-scene').addEventListener('camera-set-active', function (evt) {
  // 1. Remove active class from all cameras.
  // ...

  // 2. Add active class to camera.
  evt.detail.cameraEl.classList.add('active-camera');
});

对于look-at,您可以执行look-at=".active-camera"。不幸的是,由于该组件目前无法检测到类的更改,因此您需要刷新它。最快的方法是分离(removeAttribute)并重新附加组件(setAttribute)。

相关问题