首页 > 解决方案 > 使用移动浏览器(Unity webgl)时如何强制横向模式?

问题描述

我正在开发一个统一的 webgl 项目。
我想让它在移动环境中运行时保持横向模式。
我确实尝试了一些代码,但它们不适用于 Android 和 IOS。
有谁能救我脱离这一切?

我做了这样的事情。

<script>
    if(UnityLoader.SystemInfo.mobile == true){
        ScreenOrientation.lock('landscape');
    }
</script>

标签: androidiosunity3dunity-webgl

解决方案


你可以尝试这样的事情:

lockAllowed = window.screen.lockOrientation(orientation);

您可以在此处找到更多信息: https ://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation

在 chrome 上这样的东西应该可以工作

var lockFunction =  window.screen.orientation.lock;
if (lockFunction.call(window.screen.orientation, 'landscape')) {
           console.log('Orientation locked')
} else {
            console.error('There was a problem in locking the orientation')
}

基本上你只需要指定你需要的方向(在你的情况下是风景)。这是一个我不确定是否适用于移动设备的解决方案。

因此对于移动设备,您还可以尝试创建 manifest.json

<link rel="manifest" href="http://yoursite.com/manifest.json">

{
   "name":"A nice title for your web app",
   "display":"standalone",
   "orientation":"landscape"
}

一个唯一的解决方案可以是仅根据屏幕的 x 和 y 旋转所有内容(通过使用画布 rect),以便您可以在 x > y 时旋转并在更改时再次旋转(用户应该只能以这种方式查看风景) .


推荐阅读