虽然Unity同时支持多种架构,但是总有些程序员选择只打包32位版本,既然我们没有办法手动给程序员的脑子抽水,那就自己动手替换一个64位版本吧
以下面这个游戏为例
![v2-625b3dcfcf920837412c20aa30d31c2c_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-625b3dcfcf920837412c20aa30d31c2c_b.jpg)
右键目录内最大的可执行文件或dll,属性,查看版本
![v2-6192ce3341e432cbf30d2624af1edc7e_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-6192ce3341e432cbf30d2624af1edc7e_b.jpg)
显然这个游戏使用的是5.6.6版本的Unity
打开Unity官网下载对应版本的Editor安装包(不要下载Unity Hub,也不要下载安装器,必须下载完整安装包!)
![v2-691059daf690c9ad0f3868f75e8f3d65_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-691059daf690c9ad0f3868f75e8f3d65_b.jpg)
下载完成不要安装,直接右键用7z打开,依次进入下面这个目录:EditorDataPlaybackEngineswindowsstandalonesupportVariationswin64_nondevelopment_mono
![v2-4af11bd8b82dea7def751873161ba3bc_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-4af11bd8b82dea7def751873161ba3bc_b.jpg)
把player_win.exe拖到游戏目录,原exe改后缀备份或删除,把player_win.exe改为原exe名称
![v2-27156c6ca976b853e2870b8c7b23cfe3_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-27156c6ca976b853e2870b8c7b23cfe3_b.jpg)
此时启动游戏,必然报错如下,除非游戏用了il2cpp(il2cpp后端暂时无解)
![v2-9504d76922794c5085eca589cb60e77e_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-9504d76922794c5085eca589cb60e77e_b.jpg)
点开Data目录,删除或备份里面的Mono目录,把刚刚7z里面的Data目录里的Mono目录替换过来
![v2-023bd9f9c450b60d3484eb211d8702d5_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-023bd9f9c450b60d3484eb211d8702d5_b.jpg)
现在启动游戏,游戏应该能正常运行,任务管理器会显示这已经不是一个32位程序了
![v2-783855e29f23e4863f3e9efbe1073c66_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-783855e29f23e4863f3e9efbe1073c66_b.jpg)
但是如果不出意外,游戏使用Steam API的话,会报Steam错误,这是因为我们还没替换Steam API的DLL,64位进程不能加载32位DLL
我们可以去Steam开发者网站Steamworks下载最新的Steam SDK
把steam_api64.dll解压出来
![v2-f3e35badc4118e589bc34d2c299a43ad_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-f3e35badc4118e589bc34d2c299a43ad_b.jpg)
替换原来的steam_api.dll
![v2-215ed718b8b3b27463a73d94d0dfa211_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-215ed718b8b3b27463a73d94d0dfa211_b.jpg)
现在游戏就可以正常运行,且不影响所有Steam功能了
![v2-551c231b97c56b381722348689e1e126_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=85a7a9a5-932e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-551c231b97c56b381722348689e1e126_b.jpg)
最后,愿天下不再有32位程序