[Unity 3d] Windows10系统怎么设置强制横屏呢?
2019-07-02 本文已影响22人
雨落随风
在本文,笔者将简单讲下如何为 PC 端 App强制横屏。
发现问题:
随着 Window 平板的推广,Windows下的类移动端APP开发要求也就随之而来,那坑还会远吗?
于是笔者在使用 Windows 10 系统的 Surface Pro 上开发就发现了这个问题: Unity 提供的横屏设置对 windows 不起作用啊 ,这还能忍?!(PS:语文老师说标点符号不能连用)
解决问题:
- 百度关键字 "Unity + Windows + 横屏设置",发现一个感觉有点靠谱的关键字:
SetDisplayAutoRotationPreferences
- 看样子有戏,于是 MSDN 走起,找到了如下定义:
- 就是说只需要使用
DllImport
属性将这个方法执行一哈,传入一个 1 就能完美收官! 那么问题来了,这个方法在哪一个 DLL呢?其实文档有写啦,看我 Highlight
- 至此,解决方案完全浮出水面!
[DllImport("user32.dll")]
private static extern bool SetDisplayAutoRotationPreferences(int orientation);
void Awake()
{
SetDisplayAutoRotationPreference(1);
}
void Start()
{
Screen.SetResolution(800,600,true);
}
Tips: 必须先 Awake 设置系统旋转,然后再到 Start 重设分辨率,能解决从竖屏强制横屏时游戏分辨率不能同步的问题。
扩展阅读
- 得到当前旋转状态:GetDisplayAutoRotationPreferences function (Windows) | Microsoft Docs
- DllImport是什么操作:Unity - Manual: Native plug-ins