如何让 Unity 走代理?
最近在学习制作 Unity 游戏, 到了最后需要发布 Android 版本游戏程序的时候, 发现根本导不出来!!!
每次都会卡在 Gradle 的构建上... 看了日志之后知道了原来是从仓库下载包的时候下载失败了...那我就更郁闷了, 我 24 小时全天开着梯子, 你跟我说现在还有我下载不下来的东西? 后来在这篇文章中找到了答案! 解决Unity的网络水土不服问题
原来 Unity 压根不吃梯子啊~ ~ !
解决方法一
使用阿里的镜像源替代 Google 源
找到 Unity 的安装目录.
使用 VSCode 打开路径:
Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates
.对路径中的文件逐一修改, 将其中所有的
1 | google() |
修改为:
1 | maven { |
- 重启 Unity 项目, 重新发布即可!
[注]
文件中要替换的
google() jcenter()
不止一处, 必须全部替换!Unity 每次打开项目的时候, 都会从模板中复制文件, 在项目中建立缓存, 其中就包含我们刚刚修改的文件. 如果不重启项目, 那么项目中的缓存文件依旧使用的是修改前的文件, 此时发布依旧会失败, 所以必须重启 Unity 项目, 让 Unity 使用我们修改后的模板重新建立缓存!
解决方法二
为 Unity Hub 和 Unity 设置代理
Unity Hub 和 Unity 在连接网络时并不会读取浏览器配置, 因此梯子时无效的! 但是 Unity Hub 和 Unity 会读取环境变量中 HTTP_PROXY
和 HTTPS_PROXY
的值判断是否使用代理.
因此只要配置好这两个环境变量就好了.
1 | HTTP_PROXY = http://127.0.0.1:1080 |
结语
我最终采用的是第一种方法, 虽然设置麻烦了一点, 但是没有副作用.
第二种也用过, 也是可以实现的, 但是有副作用, 会导致其他的软件可能无法正常联网, 比如我的饥荒. (未完全证实) 不过我也确实不喜欢改动环境变量! 😂
参考链接
解决Unity的网络水土不服问题
Unity使用Gradle打包出错问题