一、制作你的第一个 Package
Unity Package 不做过多赘述,像 URP 本质上也是一个 Package,在 Unity 中可以通过菜单栏 → Window → Package manager 来管理你当前的所有 Package
本篇文章主要介绍:如何制作并发布属于你的 Package
1.1 Package 主要包含以下内容
你的 Package 所实现的功能/提供的工具本身,其中的内容包括但不限于:
- C# 脚本
- 程序集 Assembly
- 原生插件 Plugin
- 模型、贴图、材质、音频等其他资产
除此之外,还需要添加 package 信息文件
- 修改日志 CHANGELOG.md
- 说明文件 README.md
- 版权声明 LICENSE.md
- 文档 Document~ (文件夹名后加~可使工程忽略该文件夹,文档仍是 md)
以及每个包还必须包含一个 Package 清单:package.json
文件,用于声明包体信息,包括名称、版本、依赖和仓库地址等
1.2 Package 目录结构
对于单一 Package:官方手册推荐布局样式
<root>
├── package.json
├── README.md
├── CHANGELOG.md
├── LICENSE.md
├── Editor
│ ├── Unity.[YourPackageName].Editor.asmdef
│ └── EditorExample.cs
├── Runtime
│ ├── Unity.[YourPackageName].asmdef
│ └── RuntimeExample.cs
├── Tests
│ ├── Editor
│ │ ├── Unity.[YourPackageName].Editor.Tests.asmdef
│ │ └── EditorExampleTest.cs
│ └── Runtime
│ ├── Unity.[YourPackageName].Tests.asmdef
│ └── RuntimeExampleTest.cs
└── Documentation~
└── [YourPackageName].md
例如 URP Package 的第一层目录如下:
如果你有多个 Package,可以再添加一层,便于管理:
例如上,其中根文件夹用你的名字(作者名字),子文件夹为每个独立的 Package
1.2.1 各个目录里应该放置哪些内容
Editor 文件夹
- 包含一些只在编辑器中使用的功能,在这里放置的脚本将只在 Unity 编辑器环境中执行
- 需在 Editor 文件中添加对应的 asmdef 文件
Runtime 文件夹
- 包含在游戏运行时使用的功能,这里的脚本将在游戏运行时执行
- 在 Runtime 文件添加对应的 Unity.TestPackage.asmdef
Tests 文件夹或其他文件夹
- 包含你的测试场景、及其对应的材质、音效、场景等资产等。对于这部分内容,确保移除后不会影响你 package 本身的功能,实际大项目应用该 package 时,可以选择只要 Runtime 和 Editor