A帧白日梦控制?

时间:2016-12-28 14:16:04

标签: aframe daydream

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

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

我有一个Pixel XL&白日梦,并希望合并控制器,而不仅仅是头部跟踪和基于注视的控制。有人可以指出我正确的方向。

由于

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

3 个答案:

答案 0 :(得分:5)

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

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

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

  1. 在您的像素上下载Chrome测试版56:https://www.google.com/chrome/browser/beta.html
  2. 打开Chrome测试版,导航至chrome://flags并启用WebVR和Gamepad标记。
  3. 现在,您将能够在真正的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);
        });
    

    第三,现在您正在记录连接,您需要设置更新循环以获取Gamepad的当前状态。您可以使用requestAnimationFrame执行此操作。按照此处的教程:https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

    我发布了一个基本的日期框架远程组件后,我会在这里发布一个链接。希望这有助于您入门!

    编辑:看起来下面的建议效果很好。只需将“Daydream Controller”作为跟踪控件的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
        }
    

答案 1 :(得分:1)

你可以试试......

tracked-controls中当前A-Frame 0.4.0支持的方式应该有效:

如果你指定它只应匹配空字符串''的ID值,那么它应该匹配任何带有姿势的游戏手柄......所以你可以尝试像

这样的东西

<a-entity tracked-controls="id:"></a-entity>

并查看是否有事件等?

答案 2 :(得分:0)

A-Frame master分支现在包含一个白日梦控制器组件:https://aframe.io/docs/master/components/daydream-controls.html