A-Frame Daydream控件?

Tec*_*ist 4 daydream aframe

刚刚开始玩A-Frame,我可以看到vive-controls和oculus-touch-controls但谷歌白日梦没什么.

我看过组件回购,但看不到任何看起来像它的工作.现在最接近调查的是游戏手柄API,但我很惊讶我找不到任何东西.

我有一个Pixel XL和白日梦,想要整合控制器,而不仅仅是头部跟踪和基于凝视的控制.请有人指出我正确的方向.

谢谢

更新 - 我让Daydream控制器为点击工作!运行360图像库(https://aframe.io/examples/showcase/360-image-gallery/)接受来自Daydream控制器的点击.我想也许它已经超时我以前的尝试或我没有正确配对!我会一直玩!

rya*_*tts 5

致力于在Aframe项目中设置Daydream远程.白日梦遥控器没有任何组件,但我希望尽快完成 - 听起来他们将在即将发布的Aframe版本中获得主线支持.

但你可以手动滚动支持没问题.

首先,在准备过程中您需要做一些事情:

  1. 在您的Pixel上下载Chrome Beta 56:https://www.google.com/chrome/browser/beta.html .
  2. 打开Chrome测试版,导航到chrome://flags并启用WebVR和Gamepad标记.

现在,您将能够在真正的WebVR中启动使用Aframe v0.4或更高版本构建的体验.您将看到通常的Daydream屏幕提示(将手机放入耳机,并连接遥控器.)如果您连接到本地开发环境,您将看到一个安全连接警告,但这很烦人,赢了'停止工作.

其次,既然您正在运行真正的WebVR,您需要利用Gamepad API从您的白日梦远程获取信息.让我们从记录它已连接开始.

    window.addEventListener('gamepadconnected', function(evt) {
      console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.",
        e.gamepad.index, e.gamepad.id,
        e.gamepad.buttons.length, e.gamepad.axes.length);
    });
Run Code Online (Sandbox Code Playgroud)

第三,既然您正在记录连接,则需要设置更新循环以获取Gamepad的当前状态.你可以这样做requestAnimationFrame.按照以下教程:https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

一旦我发布了基本的dayframe-remote组件,我就会在这里发布一个链接.希望这有助于您入门!


编辑:看起来下面的建议很有效.只是通过"白日梦控制器"为ID为跟踪控制:tracked-controls="id: Daydream Controller".


以下是Daydream控制器输出示例.目前,只有触控板按钮显示为暴露 - 而不是应用程序或主页按钮.

    { 
      axes: [0, 1],
      buttons: [{
        pressed: false,
        touched: false,
        value: 0
      }],
      connected: true,
      displayId: 16,
      hand: "left",
      id: "Daydream Controller",
      index: 0,
      mapping: "",
      pose: {
        angularAcceleration: null,
        angularVelocity: [0, 0, 0],
        hasOrientation: true,
        hasPosition: false,
        linearAcceleration: [0,0,0],
        orientation: [0,0,0,1],
        position: null
      },
      timestamp: 1234567890123
    }
Run Code Online (Sandbox Code Playgroud)