在Web的VRView中禁用陀螺仪/设备方向读取

克里斯

我有一个用于虚拟房屋游览的Web应用程序。目前,我正在使用VRView进行这些游览,并且效果很好,但是我遇到了陀螺仪的问题,需要尽快解决。

VRView将根据用户设备的方向自动旋转摄像机。当用户转动电话时,虚拟房屋游览也将转动,因此用户可以“环顾四周”房屋。这对于大多数用例来说非常有用,但是低端设备在处理此类更改时会遇到问题。我需要让用户禁用自动旋转的方法,只需在手机上滑动即可环顾四周。

我尝试了权限api并试图撤消对陀螺仪的访问,但是由于浏览器与该api兼容,因此无法正常工作。我也没有在VRView库中找到有关此文档的任何文档。任何帮助深表感谢。

肖恩

tldr;

没错,似乎无法通过其API使用。看来您可能需要分叉库并进行一些调整。如果您想走这条路,建议您分叉存储库,看看是否可以成功禁用运动发射器,然后查看是否可以使用webvr-polyfill来启动拖动控件。也可以直接通过webvr-polyfill禁用基于陀螺的旋转。

更深入的解释:

运动信息将发布到两个位置的VR View iframe(我相信然后将它们提供给webvr-polyfill控件):https : //github.com/googlearchive/vrview/blob/bd12336b97eccd4adc9e877971c1a7da56df7d69/scripts/js/device -motion-sender.js#L35 https://github.com/googlearchive/vrview/blob/bd12336b97eccd4adc9e877971c1a7da56df7d69/src/api/iframe-message-sender.js#L45

当浏览器的UA(用户代理)标志指示它不能使用陀螺仪控件时,您需要在其中添加一个标志以禁用此功能(或在iframe中禁用侦听器)。

通常,要启用拖动旋转,我认为您需要为拖动事件的开始和结束编写一个侦听器,以将这些事件转换为摄像机旋转。(类似于此人的建议:https : //github.com/googlearchive/vrview/issues/131#issuecomment-289522607

但是,似乎控件是通过web-vr-polyfill导入的。如果我正确遵循的话,“ window.WebVRConfig”对象来自web-vr-polyfill。看到这里:https : //github.com/googlearchive/vrview/blob/bd12336b97eccd4adc9e877971c1a7da56df7d69/src/embed/main.js#L77

上面的代码看起来像VR View在检测到某个标志(在本例中为'YAW_ONLY'属性)时正在调整WebVRConfig。我相信您将不得不做类似的事情。

https://github.com/immersive-web/webvr-polyfill

请参阅此处的YAW_ONLY属性:https : //github.com/immersive-web/webvr-polyfill/blob/e2958490653bfcda4df83881d554bcdb641cf45b/src/webvr-polyfill.js#L68

请参阅此处以获取在webvr-polyfill中调整控件的示例:https : //github.com/immersive-web/webvr-polyfill#using

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章