Unity国际版本和大陆版本现在是完全独立的两个分支了。我一直以来都是用国际版本,很早就习惯了国际版本,基本没有用过本地化功能。
Unity 完美补丁 UniHacker (已经被和谐了,只剩下代码了,没有可供下载的Release版本)
- https://github.com/tylearymf/UniHacker
- https://github.com/superwoo/UniHacker
- https://gitee.com/friendan/UniHacker
- 补丁共享地址 (非最新的版本,只能支持到unity 2022.1)
采用完美补丁可以获得比较流畅的unity开发体验,缺点是版本比较老了,但是基本的开发流程是一样的;对于个人开发者来说可以用免费个人版本,常用的功能与专业版差不太多,缺点是它有联网验证的要求,没有网络或者网络不稳定的情况下,是不能打开编辑器的,并且使用并不流畅,卡顿明显。
UniHacker 破解方法分析
目前UniHacker Github内容已经被和谐了,但是从网络上还是可以找到其源码的,但对应的可运行程序就没有了。那么,UniHacker是怎么实现破解功能的呢?在只有源码的情况下,除了编译项目源码为可运行程序,是否还有其他的方式可以达到同样的目的呢?
查看 UniHacker/Patcher/Unity/UnityPatchInfos.cs,可以看到如下代码:
static readonly List<UnityPatchInfo> WindowsPatches = new()
{
new()
{
// 3.x的跟其他版本的破解流程不一样,所以就不放进来了
Version = "3.0",
},
new()
{
Version = "4.0",
Architecture = ArchitectureType.Windows_I386,
LightPattern = ToBytes(0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E, 0x04),
DarkPattern = ToBytes(0xB0, 0x01, 0xC3, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E, 0x04),
},
new()
{
Version = "5.0",
Architecture = ArchitectureType.Windows_I386,
LightPattern = ToBytes(0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E),
DarkPattern = ToBytes(0xB0, 0x01, 0xC3, 0x83, 0xEC, 0x08, 0x53, 0x56, 0x8B, 0xF1, 0x80, 0x7E),
},
// ...
}看了上面的源码,不难看出它所采用的方式就是对 Unity.exe 里的 特征码 进行替换来实现的!
聪明的你是否可以想到,把这些 特征码 和 替换码 提出出来,写一段简单的python脚本对 二进制文件(也就是 unity.exe)作 二进制字节序列搜索匹配和替换 即可。
这是一个非常简单、明确的工作,可交由 ChatGPT 等类似的AI工具来编写脚本,也就几分钟的事情了。
有一件事情值得注意的是,ChatGPT等AI工具有自己的价值主张,你与它的对话中最好不要提及 破解Unity 字样,否则它会明确的拒绝你的请求。不信,你可以直接向ChatGPT 要答案:怎么破击Unity,看看它会怎么回答你!
Unity 2022.2+ 完美补丁
到了 Unity 2022.2+ 之后,Unity的补丁历史进入了一个不同的阶段:在它之前的版本用UniHacker, 而从它开始就采用不同的补丁方式了。
关于Unity破解版这里用到以下两个用于破解软件的链接:
两个GitHub工程的对应Unity项目的破解关系是:
UniHacker → Unity Hub
unilic → Unity
正常情况下UniHacker可以同时破解 Unity 和 Unity Hub,由于UniHacker可以破解的Unity版本不能高于2022.2所以我们另外使用unilic破解Unity。
unilic 使用过程如下(该方式不再修改unity.exe文件,而是生成 unity许可证 以及 替换System.Security.Cryptography.Xml.dll文件 ):
- 准备许可证请求文件:打开hub后点击齿轮图标偏好设置的许可证,点击添加-通过许可证请求激活-下载许可证请求-创建许可证请求,生成Unity_lic.alf文件。
- 生成许可证:打开LicenseGenerate.exe文件后选择刚才生成的alf文件,无需勾选是否在此工具所在目录,直接点击创建
unity许可证,即可自动生成许可证。 - 破解unityhub:退出关闭unityhub后再打开UniHacker,指定unityhub安装路径后破解hub
- 破解unity:替换unity客户端目录下Editor\Data\Resources\Licensing\Client\System.Security.Cryptography.Xml.dll文件。
破解成功后,可打开原始项目。

踩坑
- Unity Hub 版本不能太高 如果只破解了Unity而没有破解Unity Hub(或Unity Hub的版本过高,如图中3.7版)则会在打开项目的时候反复弹窗确认登录信息。
- 破解前,先备份
C:\ProgramData\Unity\Unity_lic.ulf文件,若未破解成功,可能仍然会覆盖该文件,备份可以防之前可用的Unity不能用了 - 如果一台机器上安装了多个Unity版本(这是经常发生的事情),其安装的顺序是从老版本到新版本,或者从老的发布日期到新的发布日期,这样可以保证新旧Unity版本都能用。否则,就有可能出现这个情况:先安装unity2018, 后安装了一个unity2017版本(该版本比之前unity2018版本发布日期更早),就可能会出现 unity2017可用,而之前安装的unity 2018 不能用。对这个问题的解决办法是,针对不同的版本保存一个对应的
Unity_lic.ulf文件,需要用那个版本就用哪个的Unity_lic.ulf拷贝到C:\ProgramData\Unity\目录下。
注意
本文讲述了各个Unity版本的破解方法,并不是倡导使用破解版本,仅供学习和练习之用。如果你将Unity用于商用,并且确实用它赚到了钱,那么你确实需要购买Unity许可证来支持Unity!毕竟,只有Unity存在,才会有Unity开发者的存在!
