Sonatype Nexus 3 as Unity Package Mirror



Unity Package Manager 使用了 npm 的协议,配置起来比较简单。安装好nexus 3之后,直接创建一个 npm 的 proxy,Remote Storage 设置成 https://packages.unity.com 就行。国内服务器有条件设置一个代理也好,毕竟unity 的服务器被墙的概率挺高的。

然而,有几个坑。

1 Unity Package Manager 启动的时候会发无数个 HEAD 请求,而 nexus 3 并不支持HEAD,直接返回了404,于是 UPM 里一片红色的报警,但是不影响安装。

2 UPM 不支持加密认证,所以要想使用本地的镜像仓库,或者用 nexus 来管理自己的包,只能开启匿名访问。而公司场景的 nexus,最好从比 http 更底层的方式控制访问,例如各层加 来源 IP 控制。官方说 2020.1 才会加认证的支持 https://forum.unity.com/threads/setup-for-scoped-registries-private-registries.573934/ 。

3 墙的问题太严重。



Sonatype Nexus 3 as Unity Package Mirror by @sskaje: https://sskaje.me/2019/08/sonatype-nexus-3-as-unity-package-mirror/

Unity3d资源文件解密

这里只说 AssetBundle,只有思路。

1 废话般前提:逻辑上 AssetBundle 文件加密后肯定是需要解密了,再进行加载。

2 Unity 加载AssetBundle文件可以使用 AssetBundle.LoadFromFile,加载内存流可以用AssetBundle.LoadFromMemory 和 AssetBundle.LoadFromStream。
这些方法对应还有代Async后缀的异步加载方法。
文档在:https://docs.unity3d.com/ScriptReference/AssetBundle.html

3 打断点,看backtrace。

4 慢慢调试。

在我这个场景里,il2cpp dump是没有需求的。

贴一个bt

工具:
https://github.com/Perfare/UnityStudio
https://github.com/HearthSim/UnityPack

Unity3d资源文件解密 by @sskaje: https://sskaje.me/2018/02/unity3d-asset-bundle-decrypt/

Incoming search terms: