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 扩展包都会视为已知包。

    依赖包下载流程:

    1. 当需要下载某个包时,先查找所有依赖。
    2. 如果依赖中是 Unity 的包,跳过;如果是未知的包,则记录为持久化文件
    3. 从依赖的终点已知包开始倒序下载,直到下载完成所有的包。

    已知问题/开发计划:

    • 在进行依赖包查找时,没有处理循环引用的问题,可能会导致死循环?
    • 依赖包的持久化文件没有设计清空机制,可能会导致某些问题。
    • 依赖包没有处理错误,比如找不到包之类,这里没有做退出机制。
    • 不能打开本地文档。
    • 清空缓存时基本不能成功(这个原版也有这个问题),考虑排查。
    • Package 包的错误信息,这里直接返回的空而并不是真正的错误,后面会改成正确的筛选。
    • 在包目录 “My Registries”里实际上有Bug,这个在原版里也有,总之就是功能不正常。这个后面时间多的时候再研究他这个是出了啥问题。

    项目简介

    UnityPackageManger,扩展包、上传、下载、依赖处理等解决方案。 项目代号为:苍耳(Cocklebur)

    发行版本

    当前项目没有发行版本

    贡献者 1

    魔术师Dix @cyf649669121

    开发语言

    • C# 48.6 %
    • ASP.NET 23.8 %
    • ShaderLab 10.6 %
    • CSS 6.8 %
    • HTML 3.1 %