刚开始玩A-Frame,我可以看到vive-controls和oculus-touch-controls,但谷歌白日梦没什么。
我看过组件回购,看不到任何看起来像是做这个工作的东西。现在最接近调查的是游戏手柄API,但我很惊讶我找不到任何东西。
我有一个Pixel XL&白日梦,并希望合并控制器,而不仅仅是头部跟踪和基于注视的控制。有人可以指出我正确的方向。
由于
更新 - 我让Daydream控制器为点击工作!运行360图像库(https://aframe.io/examples/showcase/360-image-gallery/)接受来自Daydream控制器的点击。我想也许它已经超时我以前的尝试或我没有正确配对!我会一直玩!
答案 0 :(得分:5)
在Aframe项目中设置Daydream遥控器。白日梦远程没有任何组件,但我希望尽快完成 - 听起来他们将在即将发布的Aframe版本中获得主线支持。
但你可以手动支持滚动没问题。
首先,在准备过程中您需要做一些事情:
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);
});
第三,现在您正在记录连接,您需要设置更新循环以获取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