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停止使用。好的,谢谢你的时间。