刚开始玩 A-Frame,我可以看到 vive-controls 和 oculus-touch-controls,但对于 google daydream 什么也看不到。

我查看了组件存储库,没有看到任何看起来可以完成工作的东西。现在最接近调查的是 Gamepad API,但我很惊讶我找不到任何东西。

我有一个 Pixel XL 和 daydream 并且想要合并 Controller ,而不仅仅是基于头部跟踪和注视的控制。有人可以指出我正确的方向吗?

谢谢

更新 - 我让 Daydream Controller 可以点击!运行 360-image-gallery( https://aframe.io/examples/showcase/360-image-gallery/ ) 接受来自 Daydream Controller 的点击。我想它可能在我之前的尝试中超时了,或者我没有正确配对!我会继续玩的!

最佳答案

致力于在 Aframe 项目中设置 Daydream Remote 。目前还没有用于 daydream Remote 的组件,但我希望尽快完成一个 - 听起来他们将在即将发布的 Aframe 版本中成为主线支持。

但是你可以手卷支持没问题。

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

  • 在您的 Pixel 上下载 Chrome Beta 56:https://www.google.com/chrome/browser/beta.html
    .
  • 打开 Chrome Beta,导航到 chrome://flags 并启用 WebVR 和 Gamepad 标志。

  • 现在,您将能够在真正的 WebVR 中启动使用 Aframe v0.4 或更高版本构建的体验。您将收到通常的 Daydream 屏幕提示(将手机放入耳机中,然后连接 Remote 。)如果您连接到本地开发环境,您会看到安全连接警告,但这虽然很烦人,但不会不要阻止你工作。

    其次, 现在您正在运行真正的 WebVR,您需要利用 Gamepad API 从您的白日梦 Remote 获取信息。让我们首先记录它已连接。
        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);
        });
    

    第三, 现在您正在记录连接,您将需要设置更新循环以获取游戏 handle 的当前状态。你可以用 requestAnimationFrame 做到这一点。按照此处的教程进行操作:https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

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

    编辑: 看起来下面的建议很有效。只需将“Daydream Controller”作为跟踪控件的 id 传递: tracked-controls="id: Daydream Controller"

    这是一个示例 Daydream Controller 输出。目前,似乎只有触控板按钮是暴露的——而不是应用程序或主页按钮。
        {
          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
        }
    

    关于aframe - A-Frame Daydream 控制?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41363879/

    10-12 01:23