【问题标题】:WEBVR and threejs, how can I check whether the user is in VR mode or not?WEBVR和threejs,如何检查用户是否处于VR模式?
【发布时间】:2022-03-04 18:14:20
【问题描述】:

threejs 网站和其他地方的所有示例和教程都提供了这一行:

document.body.appendChild( WEBVR.createButton( renderer ) );

增加了一个漂亮的小按钮来进入 VR 模式。但是似乎没有任何方法可以检测用户是否按下了它并进入了 VR 模式。除了使用那个按钮之外,似乎没有任何方法可以进入 VR 模式。我错过了什么吗?

【问题讨论】:

    标签: three.js virtual-reality webvr


    【解决方案1】:

    您可以使用以下代码行检查 XR 设备是否有活动会话。

    renderer.xr.isPresenting()
    

    【讨论】:

    • 谢谢,那行得通。有没有办法检查用户何时进入 VR 模式?(监听事件),或者我可以显式调用 enterVR() 或其他东西并使用我自己的按钮?我找不到 renderer.vr 的任何文档...
    • @korrbit(以及未来的读者)VRButton.js 看起来非常封闭,但是如果您制作自己的副本,那么该文件中有几个地方可以检测到何时开始新的 XR 会话(提醒:如果您自动更新three.js [例如,将其放在存储库之外],请注意防止您的副本被覆盖,并且同样注意是否需要进行必要的更改,您需要将其合并到您的文件中。
    【解决方案2】:

    希望这可以帮助使用react-three/fiber的人,

    import { useThree } from "@react-three/fiber";
    
    const { gl } = useThree();
    
    gl.xr.isPresenting
    

    【讨论】:

      猜你喜欢
      • 2018-08-21
      • 2020-03-04
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      相关资源
      最近更新 更多