| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity双屏exe程序切换分辨率问题 -> 正文阅读 |
|
[游戏开发]Unity双屏exe程序切换分辨率问题 |
情况在移动硬盘上用Unity2020.3.0f1c1以及2022.1.0b2.2474打出来的exe, 同一台多屏的Windows机器, Unity使用了两个屏幕,分主屏和次屏, 在主屏切换分辨率之后,Unity的Windows exe程序好像会跟着上次的分辨率跑,记录是从3840 * 2160切换到1920 * 1080 后 一开始打开同一程序,第一次从全屏切换成了窗口。第二次打开则切换成了全屏,但是部分UI还有不适应,还是按照之前3840的分辨率跑,第三次打开的时候就完全正常了。应该算是Unity的bug。 后来测试几次发现是这样,分辨率改变的情况是这样的,丢到桌面上试了几次改分辨率也是这样:每次改完分辨率第一次运行是两个屏的程序都运行到上屏了,关掉重新打开是原来2屏的程序能在2屏跑了但是窗口化,关掉打开就是原来2屏的程序能全屏了但是我那个相机预览的UI大小和位置不对,再关掉打开就完全正常 尝试上述的情况在单屏的Unity中不会出现,只有在单屏并且带了下述脚本才会出现,下述Display脚本是必须的,否则Unity应用即使是有相机渲染到Display2,程序也不会开启双屏。 SetResolution先从最简单的尝试,可以了就不用试复杂的
在上述的情况下, 试过这句放在Start函数中这句是没用的 Display因为单屏幕的Unity exe程序是不会有收到分辨率更改的影响的。 想起了是否是下面代码
看了下 Display.renderingWidth 和 Display.systemWidth 两个的都试了,都情况还是一样。 注册表另外开了个工程,设置为双屏 ,然后发现是注册表的问题,一开始改了分辨率之后,手动将相关的注册表信息全部删除,重新打开旧不会有这种问题了,删除目录是 HKEY_CURRENT_USER\Software\ [CompanyName] \ [ProductName] 即将这个程序运行后产生的注册表信息全部删除。 因为Unity的程序本来是不用安装的,所以是在运行时进行注册表注册的,没用注册表信息,Unity的包程序会按照开发工程中的默认选项进行设置屏幕并再次创建注册表。 但是删除这个工作要交给程序来做才行。 代码:
上面的代码在程序退出的时候,例如OnApplicationQuit的时候调用即可。删除了注册表后,不管退出应用后怎么改分辨率,重新打开都像第一次将程序拷贝到电脑一样了。
参考 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 16:23:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |