gpt4 book ai didi

aframe - 如何在 A-Frame 中聆听相机旋转的变化?

转载 作者:行者123 更新时间:2023-12-04 22:43:14 30 4
gpt4 key购买 nike

有没有办法在当前视角上添加一个监听器?

换句话说,每次用户向后看时,我都想触发一个功能。

最快的方法似乎是让一个监听器检查当前的头部旋转,如果在一定的度数范围内,信任会触发该功能

最佳答案

编辑

componentchange 事件受到限制。并且不通过事件系统进行频繁更新的性能更高。摄像机旋转总是在 VR 中的每一帧发生变化,因此无需考虑摄像机是否发生了变化。所以我们用组件刻度读取每一帧的旋转。

AFRAME.registerComponent('rotation-reader', {
tick: function () {
var rotation = this.el.getAttribute('rotation');
if (rotation.y < 180) {
// ...
}
}
});

// <a-camera rotation-reader>

原来的

https://aframe.io/docs/0.2.0/core/entity.html#listening-for-component-changes

您可以使用 componentchanged监听旋转变化的事件:
document.querySelector('[camera]').addEventListener('componentchanged', function (evt) {
if (evt.name !== 'rotation') { return; }
if (evt.newData.y < 180) { // ... }
});

或者更好地作为组件(这将在旋转一定量时触发事件):
AFRAME.registerComponent('trigger-on-look-behind', {
schema: {type: 'string'},

init: function () {
var eventName = this.data;
this.el.addEventListener('componentchanged', function (evt) {
if (evt.name !== 'rotation') { return; }
if (evt.newData.y < 180) {
this.emit(eventName);
}
});
}
});

进而:
<a-camera trigger-on-look-behind="looked-behind"></a-camera>

关于aframe - 如何在 A-Frame 中聆听相机旋转的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38907857/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com