下面是自定义包的建议包布局:
<package-root>
├── package.json
├── README.md
├── CHANGELOG.md
├── LICENSE.md
├── Third Party Notices.md
├── Editor
│ ├── <company-name>.<package-name>.Editor.asmdef
│ └── EditorExample.cs
├── Runtime
│ ├── <company-name>.<package-name>.asmdef
│ └── RuntimeExample.cs
├── Tests
│ ├── Editor
│ │ ├── <company-name>.<package-name>.Editor.Tests.asmdef
│ │ └── EditorExampleTest.cs
│ └── Runtime
│ ├── <company-name>.<package-name>.Tests.asmdef
│ └── RuntimeExampleTest.cs
├── Samples~
│ ├── SampleFolder1
│ ├── SampleFolder2
│ └── ...
└── Documentation~
└── <package-name>.md
许多官方的 Unity 包也实现这种结构。
| 所在地 | 描述 |
|---|---|
package.json |
包清单,定义了包的依赖项和其他元数据。 |
README.md |
开发者包文档。通常来说,这是文档,可帮助那些想要修改包或想要在包的主分支中推送更改的开发者。 |
CHANGELOG.md |
对包更改的描述,按照相反的时间顺序列示。最好使用标准格式,比如保留变更日志。 |
LICENSE.md |
包含包许可证文本。通常,Package Manager 将从所选的 SPDX 列表网站复制文本。 |
Third Party Notices.md |
包含满足法律要求所需的信息。 |
Editor/ |
特定于 Editor 平台的 Assets 文件夹。与 Assets 下的 Editor 文件夹不同,这仅仅是一种约定俗成的做法,并不会影响资源导入流程。请参阅程序集定义和包以在此文件夹中正确配置特定于 Editor 的程序集。 |
Runtime/ |
特定于运行时平台的 Assets 文件夹。这仅仅是一种约定俗成的做法,并不会影响资源导入流程。请参阅程序集定义和包以在此文件夹中正确配置运行时程序集。 |
Tests/ |
用来存储包中所有包含的测试的文件夹。 |
Tests/Editor/ |
特定于 Editor 平台的测试文件夹。请参阅程序集定义和包以在此文件夹中正确配置特定于 Editor 的测试程序集。 |
Tests/Runtime/ |
特定运行时平台的测试。请参阅程序集定义和包以在此文件夹中正确配置运行时测试程序集。 |
Samples~/ |
用来存储包中所有包含的示例的文件夹。 |
Documentation~ |
用来存储包中所有包含的文档的文件夹。 |
Unity 会忽略以 ~ 字符结尾的所有文件夹名称的内容,并且不会使用 .meta 文件跟踪它们。但是,您需要为 Editor、Runtime 和 Tests 文件夹及其内容添加 .meta 文件,以使它们正常运行。有关 .meta 文件以及 Unity 如何使用它们进行跟踪的更多信息,请参阅资源工作流程。