【Unity】UPM解决方案:苍耳

项目地址:

魔术师Dix / UPM解决方案:苍耳 · GitCode

1、什么是UPM

        UPM,即是 Unity Package Manager 的简称,其官网介绍如下:

Unity - Manual: Unity's Package Managerhttps://docs.unity3d.com/Manual/Packages.html        其本身是Unity自带的一个窗口,用于管理各种 Unity 的 Pakcage,包括用户的商店资源,也是在这个窗口中获取以及管理。

        但是本项目主要只是解决 package 包,也就是通常所说的插件管理。

2、为什么要使用苍耳

        在进行Unity游戏开发的时候,一直有一个痛点,那便是相同功能的代码在不同项目之间如何共同使用?

        例如我现在开发了一个数学库,做得很通用,可以在多个项目使用。现有的处理方式要么就是复制粘贴,更优雅一点的无非就是打个 unitypackage 包,然后手动导入。

        但是这种模式就会有以下问题:

  • 如果各个包之间有引用关系,如何处理?
  • 如果开发人员将包升级了,各个项目如何升级?
  • 导入包的方式如何做代码隔离(如果是开源的插件)?
  • 如何方便地发布包,以及业务人员如何管理?

        而苍耳就能完美解决上述痛点。

  • 导入包时,会自动检测引用关系,并依次下载对应包(需要使用对应插件)。
  • 当所需的 包/插件 升级时,能够在Unity 的窗口下看到升级提示,用户可以自行选择是否升级。而且升级的操作即为简单,点击 Update 即可完成升级。
  • UPM 导入的 包/插件 是不可编辑的,不存在业务人员修改到核心代码的情况。
  • UPM 包/插件 通过苍耳插件管理,会有一个可视化界面供用户使用,方便快捷。

3、苍耳的运作原理

        如下图所示:

        

        开发人员将插件通过工具或自行上传到Git服务器,这里可以是内网、外网,只要用户能够访问到即可。

        用户通过Unity的管理窗口下载。

        如果有版本更新,开发人员将插件上传后,用户通过苍耳提供的插件能自行查询到,从而自行决定是否需要更新版本。

3.1、插件上传

        插件可以自行通过git命令上传,也可以通过工具上传。

        强烈建议插件开发人员先阅读此文本:

        【教程】开发Unity PackageManager 插件包

        当然,也可以使用苍耳提供的可视化上传工具进行包上传和 package.json 的编辑:

        UpmPublisher/Package · master · 魔术师Dix / UPM解决方案:苍耳 · GitCode

        

        至于这个小工具的文档,这里不展开,详细说明参考其他文档。

3.2、插件包的下载

        首先需要安装 Git !

        这里Git不是小乌龟,是带命令行的Git,否则插件都拉不下来。

        之后建议安装苍耳的Unity拓展,具体方法如下:

  1. 在 Unity 中打开 Window -> Package Manager
  2. 点击左上角的 ‘+’ 并选择 Add package form git URL 
  3. 输入地址 :https://gitcode.net/cyf649669121/Cocklebur.git#UpmGitExtension
  4. 点击 Add 按钮并等待加载完成

        完成安装之后,能够在窗口左上角看到一个Git的图标,即为安装成功。

         这个插件其实根据一个开源项目改造的,使用方法也是一样的:        https://github.com/mob-sakai/UpmGitExtensionhttps://github.com/mob-sakai/UpmGitExtension      原版插件的功能已经比较丰富了:

         在第一版本的苍耳中,对此插件进行了如下优化:

  • 修改之后的插件增加了调试功能,方便查看插件的异常。在Unity中启用 DEBUG_UPM_GIT 宏开启调试。
  • 增加了引用自动下载,现在在包有依赖的情况,会自动下载已知路径的包。
  • 修正了文档打开的功能,以前的版本在 UPM 中无法正确打开文档。
  • 增加了自动处理引用的功能,现在会自己从已知库中拉取引用了。
  • 适配到Unity 2021.3.12 和 2020.3.41

        后续开发计划以及变动在项目文档中介绍。

猜你喜欢

转载自blog.csdn.net/cyf649669121/article/details/127751098