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

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

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.net/postedit/82932774

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

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值