stonstad 发表于 2022-7-6 17:32

Unity自定义包体打包

公司里面使用的包体更行方法是通过PackageManager项目之前的更行以及打包,对于中台来说是非常方便的一种更新手段,各项目只需要进行在Package中更新或者填入URL就可以获取对应的包体。
开发阶段注意事项

由于这种基于PackageManager的更新方法不像之前UnityPackage的打包方法以及导入,还是存在一定的差别的。
首先, packageManager更新的方法无法使用Package中的scene场景文件,所有没办法去制作对应的示范场景。
第二 也是比较重要的一点, 这种打包方法需要按照遵循Unity提供的包布局约定(参考链接),同时需要使用程序集进行文件夹之间的程序集划分。所以在开发过程中要主意好Editor和RunTime之间的脚本的区分,Editor可以使用RunTime中的脚本,但是RunTime不能使用Editor中的脚本。
步骤

完成插件开发之后,新建一个json文件作为他的包清单文件(参考链接)
这里给出一个简单的参考文件
{
"name": "com..",// 包体名字格式
"version": "1.2.3",                           // 版本
"displayName": "Package Example",             // 显示名称
"description": "This is an example package",// 描述
"unity": "2019.1",                            // Unity版本
"author": {                                 // 一些开发者信息
    "name": "Unity",
    "email": "unity@example.com",
    "url": "https://www.unity3d.com"
}
}
根据Unity方提供的包布局约定整理好包体的文件夹(参考链接)



包布局约定参考

将该文件保存为 package.json 保存在包体的根目录下



存放位置

ChangeLog.md 和 ReadMe.md 文件用于记录修改日志,以及每个版本的一些说明,最好还是添加一下方便后续跟踪问题或者查看每次更新的改变以及注意事项
包清单以及.md文件添加好后 就需要添加程序集定义文件了。 分别打开RunTime,Editor,Tests文件
右键空白地方选择Create / Assembly Definition 新建一个程序集文件在对应的文件夹中
程序集文件也有命名要求(参考链接)



其中Editor的程序集文件设置如下,因为只需要在Editor环境下进行打包。



Editor下的Assembly Definition设置

以上 完成这些步骤就可以将所写的插件打包成一个可通过packageManager导入的工程了。
接下来将他上传到公司内部的NPM 或者 git 上,得到对应的git链接在packageManager中
https://github.com/Unity-Technologies/PostProcessing.git
这里以一个UnityPostProcessing 的链接作为例子





Add后就会从远端拉取对应的包导入到项目中, 然后刚刚我们完成的包体文件也可以放在硬盘上 通过AddPackageFromDisk先进行本地测试查看导入是有问题(我当时就巨多问题报错)。
关于NPM服务器部署可以参考以下链接
https://blog.csdn.net/mseol/article/details/82940377
参考:
创建自定义包 - Unity 手册 (unity3d.com)
程序集定义和包 - Unity 手册 (unity3d.com)
https://blog.csdn.net/mseol/article/details/82940377
页: [1]
查看完整版本: Unity自定义包体打包