phone 上的相机控制不适用于 babylonjs vr

Camera control on phone not working for babylonjs vr

我无法使用 babylon defaultVRExperience

让相机控制在 phone 上工作

我不明白缺少了什么。我已经尝试了所有我能想到的方法,但找不到任何在 babylonjs 游乐场之外有效的示例。

仅需几行代码即可在巴比伦游乐场完美运行的示例:https://www.babylonjs-playground.com/#VIGXA3#38

相同代码在 babylon 之外不起作用的示例:http://jsfiddle.net/dr3k5oqb/

这是一个示例,其中包含我在一篇关于使用 babylon 为 phones 制作虚拟现实内容的文章中找到的一些内容。也不起作用:https://jsfiddle.net/2cdLw0tk/2/

Phone: one+ 5 with oxygenOS 9.0.9

浏览器: Chrome 版本 79.0.3945.93

从字面上看,我们将不胜感激...

我假设您正在使用 iphone 野生动物园。

The story is that Apple is preparing to introduce a new security/privacy setting to prevent sites from being able to access a device’s accelerometer and gyroscope, which means some of those VR/AR items you come across online probably won’t work quite as well until you give express permission to do so. full article

为了使用虚拟现实,我们应该要求用户使用以下代码允许访问运动和方向:

function onClick() 
{
    if (typeof DeviceMotionEvent.requestPermission === 'function') 
    {
        DeviceMotionEvent.requestPermission()
        .then(permissionState => {
            if (permissionState === 'granted') 
            {
                // DeviceMotionEvent.requestPermission() has been granted
            }
        })
        .catch(console.error);
       }
}

这是 jsfiddle 巴比伦 iphone 在操场外工作的虚拟现实示例。

在您的 phone

中打开这个 demo link

Chrome v76 和 forward 已删除对 http 的 DeviceMotionEvent 使用,这意味着 chrome 的 vr 加速计控制仅在使用 https

时有效

来源:https://www.chromestatus.com/feature/5688035094036480

这可以通过将我的示例链接切换到 https 来确认,他们开始在我的 phone 上处理 chrome。

如果你想支持 safari,可以看看 Mudin 的回答。