我正在使用 AFrame 1.2.0 开发一个 VR 应用程序,并且我在几天内都在为一个问题苦苦挣扎。我的目标是让用户看到以编程方式设置且与当前设备方向完全无关的特定视图。换句话说,我应该:
- 阻止用户根据其设备方向查看世界;
- 强制用户查看特定点(我以编程方式设置);
这些步骤基本上意味着我应该能够:
- 禁用用户设备旋转(VR-Mode 未解决)
- 以“刷新”率(完成)将视图设置到特定位置
正如我所写,问题与第一点有关:禁用用户设备方向,它只影响VR 模式。确实,当视图不在 VR 模式下时,一切正常,但是当进入 VR 模式时,我不能再这样做了。
我尝试管理这些框架/库/API:
- AFrame,外观控制:我知道可以使用某些属性(例如启用、magicWindowTrackingEnabled、magicWindowControls)禁用外观控制:它有效,但仅当视图不处于 VR 模式时;(请注意,hmdEnabled 从 0.8v 开始在 AFRAME 中不再存在,因为据我了解,WebXR 的引入不允许直接从 AFrame 管理设备);
- THREE.DeviceOrientationControls:我知道外观控制组件在后台使用这个 THREE 元素,所以我对其进行了调试并尝试直接管理它(例如调用断开连接、处置、启用 = false):再次,它工作但仅当视图不在 VR 模式下;
- WebXR:在最低级别,WebXR 是最后使用的 API。我调试了它并尝试管理 WebXR 会话,但一切都处于只读模式,似乎没有激活/停用设备传感器的功能。
所以,这里的问题是:如何在 VR 模式下使用 AFrame/THREE/WebXR 或其他方式禁用设备方向?
谢谢你们。