我的场景中有一堆触发器,我需要在播放音频文件时禁用它。
因此音频文件是打开场景时首先播放的内容。在此期间,我希望禁用所有触发器,以便用户在音频时间内无法与它们进行交互。
有没有办法禁用所有这些? 谢谢!
答案 0 :(得分:1)
A-Frame主构建具有raycaster.enabled
属性。所以你可以暂时setAttribute('raycaster', 'enabled', false)
。
https://github.com/aframevr/aframe/commit/3ea1b0c32070975b6a8cf5e59d345ac789b930fe
如果组件正确实现了该处理程序,您也可以在组件上运行.pause()
。如果要在vive-control上禁用触发器,例如:
controllerEl.components['vive-controls'].pause();
答案 1 :(得分:0)
按触发器您是指具有事件侦听器的实体?
如果是这样,他们有"暂停()"实施,像ngoKevin建议here?
如果没有,想法是
play()
方法添加事件侦听器pause()
删除事件侦听器。<小时/> 拥有这些,唯一剩下的就是组织。要么将所有的触发器保留在父实体中,并且当你的声音正在播放时只是像这样遍历子节点:
document.querySelector("#TriggerParent").children.forEach( (el) => {
el.pause();
}
或者您可以通过任何常见属性抓取它们,例如querySelector([triggerComponent]);