Javascript A-Frame |如何检测正确的控制器以设置正确的事件?
我正在使用Javascript A-Frame |如何检测正确的控制器以设置正确的事件?,javascript,events,controller,aframe,virtual-reality,Javascript,Events,Controller,Aframe,Virtual Reality,我正在使用aframevr制作一个vr应用程序,我希望它能与所有控制器兼容 当我用智能手机和白日梦捆绑包进行测试时,这是我的尝试,但不起作用 JavaScript: AFRAME.registerComponent('controller', { dependencies: ['tracked-controls'], schema: { hand: { default: 'right' } }, init: functio
aframevr
制作一个vr应用程序,我希望它能与所有控制器兼容
当我用智能手机和白日梦捆绑包进行测试时,这是我的尝试,但不起作用
JavaScript:
AFRAME.registerComponent('controller', {
dependencies: ['tracked-controls'],
schema: {
hand: { default: 'right' }
},
init: function () {
let config = this.config,
data = this.data,
self = this.el;
// track all types of controllers
self.setAttribute('daydream-controls', { hand: data.hand, model: false });
self.setAttribute('gearvr-controls', { hand: data.hand, model: false });
self.setAttribute('oculus-touch-controls', { hand: data.hand, model: false });
self.setAttribute('vive-controls', { hand: data.hand, model: false });
// wait for controller to connect
self.addEventListener('controllerconnected', event => {
let controllerConfig = config[event.detail.name];
self.addEventListener(controllerConfig.triggerEvent, () => {
handleTrigger('0');
});
});
},
config: {
'daydream-controls': {
triggerEvent: 'trackpadup'
},
'gearvr-controls': {
triggerEvent: 'trackpadup'
},
'oculus-touch-controls': {
triggerEvent: 'triggerup'
},
'vive-controls': {
triggerEvent: 'triggerup'
}
}
});
<a-entity controller></a-entity>
HTML:
AFRAME.registerComponent('controller', {
dependencies: ['tracked-controls'],
schema: {
hand: { default: 'right' }
},
init: function () {
let config = this.config,
data = this.data,
self = this.el;
// track all types of controllers
self.setAttribute('daydream-controls', { hand: data.hand, model: false });
self.setAttribute('gearvr-controls', { hand: data.hand, model: false });
self.setAttribute('oculus-touch-controls', { hand: data.hand, model: false });
self.setAttribute('vive-controls', { hand: data.hand, model: false });
// wait for controller to connect
self.addEventListener('controllerconnected', event => {
let controllerConfig = config[event.detail.name];
self.addEventListener(controllerConfig.triggerEvent, () => {
handleTrigger('0');
});
});
},
config: {
'daydream-controls': {
triggerEvent: 'trackpadup'
},
'gearvr-controls': {
triggerEvent: 'trackpadup'
},
'oculus-touch-controls': {
triggerEvent: 'triggerup'
},
'vive-controls': {
triggerEvent: 'triggerup'
}
}
});
<a-entity controller></a-entity>
谢谢您的帮助。什么智能手机?Daydream仅在Pixel 1/2/3手机上受支持,Pixel 4和任何其他未来手机已停止使用。我建议使用桌面VR或完全支持的独立耳机,如Oculus Go/Quest。华硕zenphone ARNo了解白日梦日落时间表。如果它在最新的Chrome版本中停止工作,我不会感到惊讶。你可以尝试用以下示例进行验证:我建议重新考虑Daydream兼容性,因为该平台已被Google停止使用。好的,谢谢你的时间。