android - 使用移动浏览器(Unity webgl)时如何强制横向模式?
问题描述
我正在开发一个统一的 webgl 项目。
我想让它在移动环境中运行时保持横向模式。
我确实尝试了一些代码,但它们不适用于 Android 和 IOS。
有谁能救我脱离这一切?
我做了这样的事情。
<script>
if(UnityLoader.SystemInfo.mobile == true){
ScreenOrientation.lock('landscape');
}
</script>
解决方案
你可以尝试这样的事情:
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 时旋转并在更改时再次旋转(用户应该只能以这种方式查看风景) .
推荐阅读
- python - Python 3 列表理解从列表中删除元组
- python - 在 Python 中将列表扩展为 json 文件
- python - 在用于 python 的 sqlite3 中插入外键
- python - 如何在 Python 中的 csv 文件的特定列中测试条件
- javascript - 无法单击powershell中的超链接
- javascript - Electron:dialog.showMessageBox() 不适用于父窗口(模式失败)
- html - 如何在目标列之间放置不同的边距宽度而不使我的列开始新行?(我想一共保留12个col)
- c - C:如何优化给定c程序的内存消耗?
- python - 如何在python中使用旋转和平移为鸟瞰图应用逆透视映射
- javascript - 如何将 Google reCaptcha 的“我不是机器人”语言更改为英语