README.md
UPM Git Extension
此插件是针对Unity的Package Manager的扩展,优化内容为 Git 拉取、管理部分。
此插件是针对Git工程 https://github.com/mob-sakai/UpmGitExtension 进行二次封装开发,更新了适配和一些功能。基本的使用方法和原版是一样的,如不了解请先查看原版插件的教程说明。
更新功能
- 新增了调试日志,需要在Unity中开启 DEBUG_UPM_GIT 宏。
- **重大优化:**增加了依赖包的自动下载功能(只限于处理已知的包,后续会详细说明)。
- **重大更新:**新增了对Unity 2020.3.41 和 2021.3.12 的适配。
- 优化了文档打开的部分,之前在 Unity Package Manager 窗口中点击 View documentation 和 View changelog 会提示没有离线文档。虽然配置的是一个在线文档,但很多时候并不能正常打开。优化之后现在只要 package.json 里面有配置网址,就直接打开。但相应地,就取消了离线文档的功能!
关于包依赖的下载
原版的 Unity 只会下载依赖于 Unity Technologies 的包,其他的包需要配置 Scoped 才能找到。这里进行的一步优化便是支持下载已知包。
什么是已知包:
所谓已知包,就是已经缓存在Git拉取记录的包。打开 Unity Package Manager 窗口后,在左上角的红色git按钮进去,点击 Repositroy URL 里面锁所记录的所有的网址的所有包都视为已知包。一般来讲只要层级从这个git目录中下载过这些包,这个地址里所有的 UPM 扩展包都会视为已知包。
依赖包下载流程:
- 当需要下载某个包时,先查找所有依赖。
- 如果依赖中是 Unity 的包,跳过;如果是未知的包,则记录为持久化文件。
- 从依赖的终点已知包开始倒序下载,直到下载完成所有的包。
已知问题/开发计划:
- 在进行依赖包查找时,没有处理循环引用的问题,可能会导致死循环?
- 依赖包的持久化文件没有设计清空机制,可能会导致某些问题。
- 依赖包没有处理错误,比如找不到包之类,这里没有做退出机制。
- 不能打开本地文档。
- 清空缓存时基本不能成功(这个原版也有这个问题),考虑排查。
- Package 包的错误信息,这里直接返回的空而并不是真正的错误,后面会改成正确的筛选。
- 在包目录 “My Registries”里实际上有Bug,这个在原版里也有,总之就是功能不正常。这个后面时间多的时候再研究他这个是出了啥问题。