一、概述
在公司开发的前两个项目,虽然搭建了基础的框架,有一些目录划分,但是当项目复杂度增长到一定程度,以及后续新开了一些新的项目之后,对于基础框架的管理就遇到了一些挑战,主要体现在以下几个方面:
1、多项目之间拷贝了类似的基础框架,但是在开发过程中各项目之间各自对内容进行修改,难以共享修改的结果。比如,对于如第三方sdk升级、对框架的bug修复等,在不同项目之间各升级一遍,该踩的坑要再各踩一遍等,实际上效率很低。
2、新项目无法直接引入纯净的基础框架,需要整个复制其他项目的框架,以此为基础删掉逻辑。
3、权限管理难,框架级的代码并不希望所有的组员都去更改。
4、版本管理难,只能依靠git去做零碎的历史记录管理。
5、没有对框架模块进行正经的模块化管理,命名规范、接口设计等方面在多人协作过程中容易逐渐演变地随意起来,难以管理。
实际上,从Unity2017开始,Unity3D引擎本身就开始转向使用Unity Package Manager(UPM)管理Unity自身的功能模块,到后续Unity 2019乃至之后的版本,Unity Package Manager已经发展成为一个完善的包管理系统,Unity内置的功能,以及Asset Store的资源都可以通过Package Manager进行管理。
为了解决上述遇到的这些问题,可以用UPM的方式管理我们的自定义包。使用思路如下:
1、建立一个专用框架开发工程,使用git管理,只对希望有开发框架的权限的人员开放权限。
2、在框架工程对各个基础模块解耦并独立出来,设计好多个Package包,导出.tgz包。
3、搭建npm服务器,托管导出的.tgz包。
4、在各客户端项目里配好服务器地址,各取所需引入对应的包。
二、UPM
Unity Package Manager(UPM) 是Unity官方维护的一个包管理器。
官方对应的说明如下:Unity - Manual: Unity's Package Manager (unity3d.com)
https://docs.unity3d.com/2021.3/Documentation/Manual/Packages.html Unity - Manual: Scoped registries (unity3d.com)
https://docs.unity3d.com/2021.3/Documentation/Ma

本文介绍了如何使用Unity Package Manager(UPM)解决多项目框架管理难题。通过建立专用框架工程,采用UPM进行模块化管理,实现包的打包、托管和客户端引入。UPM的目录结构、编辑器窗口、权限管理等方面进行了详细阐述,并分享了在实践中的一些技巧,如dll和命名空间管理、资源路径处理等。
3833

被折叠的 条评论
为什么被折叠?



