关于unity切换电脑之后分辨率改变的解决办法及原因

编程入门 行业动态 更新时间:2024-10-24 16:21:46

导致切换电脑之后应用程序分辨率变了的原因:

unity打包的程序会在注册表记录你打包程序之后的默认设置;

当Unity3d 打包Windows Standalone 不显示分辨率选择框时,画质相关系统设定存储在注册表里的如下位置

HKEY_CURRENT_USER\Software\  [CompanyName] \ [ProductName]

CompanyName 是打包里的公司名

ProductName 是打包里的产品名

没有此Key的话右键新建加上就好了

 

Key(注册表里对应的选项<键>)Type(注册表里对应的值的类型)Value(注册表里对应的值<键的值>)
Screenmanager Is Fullscreen mode_h3981298716DWORD0 非全屏 |  1 全屏
Screenmanager Resolution Height_h2627697771DWORD具体Height 如  1080
Screenmanager Resolution Width_h182942802DWORD具体Width 如 1920
UnitySelectMonitor_h17969598DWORD屏幕ID    1 | 2 | 3 
UnityGraphicsQuality_h1669003810      DWORD画质设定 Fast 0~5 Fantasic

DWORD:在windows的注册表中,二进制的值是没有长度限制的,可以是任意字节长。但是在注册表编辑中,二进制会以十六进制的方式显示出来。DWORD值就是一个32位(双字节长)长度的数值,所以在注册表中系统以十六进制的方式显示DWORD值,64位系统当中还多一个DWORD(64位)的值。在系统中二进制和DWORD值的图标是一样的,不过二进制值是两位两位的显示,DWORD值的前面则标有标志性的0x,表示十六进制。所以后面的值显示可能不是普通数字,但是懂程序应该都能看懂。

那么问题就来了,如果你打包了很多次的unity的包,而且包名相同的话就会出现分辨率错乱的问题,导致这个的原因就是相同包名的unity程序在注册表中只能注册一个项,所以不管你打包多少相同包名的unity程序他在对应的注册表中都是一个设置。

解决办法

一:使用不同的unity报名打包。

二:第一个办法最简单直接,但是一般情况不能适用,因为基本公司项目包名都是统一的所以解决办法:

1.找到注册表中对应的应用程序的包的设置→删除→再打包→解决。(这个方法是非常蠢的办法)

2.通过程序来删除:

具体代码参照我的另一片文章:https://mp.csdn/postedit/82932774

首先在你应用程序最开始的地方判断你所对应的包名是否存在,如果存在则删除。

 

更多推荐

关于unity切换电脑之后分辨率改变的解决办法及原因

本文发布于:2023-06-14 09:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1461211.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:解决办法   分辨率   原因   电脑   unity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!