引用官方文档版本基于 Unity 2019.4
本说明生效于 Unity 2019.3 或更高版本
以后 database2 资源数据库版本
请务必升级 Unity 2019.3 以上
后使用
布局继承于官方布局 2019.4 创建自定义包 > 包布局
最新布局见官方文档 CustomPackages
- 例子以命名空间为
GroupName.Unity.ModuleName
作为例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| # unity 定义的 package 等同于 npm 定义的 module, 且 module(模组) 包含更多内容,且不容易跟 package xx(xx包) 之类概念冲突,故使用 module 更贴切
# 命名格式 [GroupName].Unity.[ModuleName] 为包命名空间 后面简称 [PkgNamespace];
.
├── README.md # package 说明文档,将显示在 git 仓库或者 npm 包的首页
├── CHANGELOG.md # 修改日志,可以使用 conventional-changelog 工具读取 git log 和 package.json 自动生成
├── Documentation~ # 包详细说明文档,在发布的包中,路径为 Documentation~ (末尾~自带忽略效果),故 README.md 中写相对路径无效
├── LICENSE.md # 授权说明 (可选)
├── Makefile # make构建配置文件(可选),熟悉其他构建脚本工具的可以换成其他配置文件
├── Resources # 资源文件夹 (可选),当然也可以包括 StreamingAssets Gizmos 之类资源,这里不列举,对外发布必须带有的资源在这个文件夹
├── Plugins # native插件(可选) 会被自动包含进build中去,这里只列举几个平台
│ ├── README.md
│ ├── Android # - Android 平台下的 native 插件
│ ├── iOS # - iOS 平台下的 native 插件
│ └── x86_64 # - x64 平台下的 native 插件
├── Runtime # 运行程序目录 这里面的代码会被打到最终发布包里,并且不要直接在这个目录下写代码
│ ├── [GroupName].Unity.[ModuleName].Runtime.asmdef # - 运行程序集定义 注意:只包含一个定义文件,命名格式 [PkgNamespace].Runtime, 可省略后面的 .Runtime
│ ├── Singleton # -- 运行程序包文件夹
│ │ └── [ModuleName].Runtime.Singleton.cs
│ └── [ModuleName] # -- 运行程序包文件夹
│ ├── Definition.cs
│ ├── [ModuleName].cs
│ ├── [ModuleNameData].cs
│ └── [ModuleNameEnum].cs
├── Editor # 编辑器文件夹(可选) 开发编辑器用到的一些资源或者代码,不会被打到最终发布包里, 并且不要直接在这个目录下写代码
│ ├── [GroupName].Unity.[ModuleName].Editor.asmdef # - 编辑器程序集定义(可选) 注意:建议只包含一个定义文件,命名格式 [PkgNamespace].Editor
│ ├── Default # -- 不分平台,或者默认情况下,请将代码写在这个目录中
│ │ └── [ModuleName].Editor.cs
│ ├── Android # -- 编辑器 android 平台的代码目录
│ │ └── [ModuleName].Editor.Android.cs
│ └── iOS # -- 编辑器 iOS 平台的代码目录
│ └── [ModuleName].Editor.iOS.cs
├── Tests # 测试程序目录,这里面的代码不会被打到最终发布包里,并且不要直接在这个目录下写代码
│ ├── Editor # - 测试编辑器程序文件夹 (可选) ,不要直接在这个目录下写代码
│ │ ├── [GroupName].Unity.[ModuleName].Editor.Tests.asmdef # - 测试编辑器程序集定义(可选) 注意:建议只包含一个定义文件,命名格式 [PkgNamespace].Editor.Tests
│ │ ├── Default # -- 不分平台,或者默认情况下,请将代码写在这个目录中
│ │ │ └── [ModuleName].Editor.Default.Tests.cs
│ │ ├── Android # -- 测试编辑器程序平台 Android 文件夹
│ │ │ └── [ModuleName].Editor.Android.Tests.cs
│ │ └── iOS # -- 测试编辑器程序平台 iOS 文件夹
│ │ └── [ModuleName].Editor.iOS.Tests.cs
│ └── Runtime # - 测试运行程序文件夹 (可选) ,不要直接在这个目录下写代码
│ ├── [GroupName].Unity.[ModuleName].Runtime.Tests.asmdef # - 测试运行程序集定义(可选) 注意:建议只包含一个定义文件,命名格式 [PkgNamespace].Runtime.Tests
│ ├── Base # -- 测试基础代码文件夹
│ │ └── BaseTests.cs
│ └── [ModuleNameTest] # -- 测试运行时代码文件夹,格式为 [ModuleName]Test
│ └── [ModuleNameTest].cs # -- 测试运行代码文件,如果为单元测试,则为对应单元测试的代码文件附加 Test 命名
├── package-lock.json # 不能提交,会导致 源码开发时,编译警告
└── package.json # module 配置,注意: 如果使用源码依赖开发,请不要配置 dependencies 而在发布到 npm 时填充依赖配置
|
编译警告内容
1
| A meta data file (.meta) exists but its asset 'Packages/xxx/package-lock.json' can't be found. When moving or deleting files outside of Unity, please ensure that the corresponding .meta file is moved or deleted along with it.
|
这个警告是 unity Assets 文件夹下,每个文件必须配置 .meta
配置管理文件导致的,可以自己生成一个 .meta
或者在 Unity 编辑器下调试插件生成一个解决
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| # unity 定义的 package 等同于 npm 定义的 module, 且 module(模组) 包含更多内容,且不容易跟 package xx(xx包) 之类概念冲突,故使用 module 更贴切
# 命名格式 [GroupName].Unity.[ModuleName] 为包命名空间 后面简称 [PkgNamespace];
.
├── README.md # package 说明文档,将显示在 git 仓库或者 npm 包的首页
├── CHANGELOG.md # 修改日志,可以使用 conventional-changelog 工具读取 git log 和 package.json 自动生成
├── Documentation~ # 包详细说明文档,在发布的包中,路径为 Documentation~ (末尾~自带忽略效果),故 README.md 中写相对路径无效
├── Makefile # make构建配置文件(可选),熟悉其他构建脚本工具的可以换成其他配置文件
├── Plugins # native插件(可选) 会被自动包含进build中去,这里只列举几个平台
│ ├── README.md
│ ├── Android # - Android 平台下的 native 插件
│ ├── iOS # - iOS 平台下的 native 插件
│ └── x86_64 # - x64 平台下的 native 插件
├── Runtime # 运行程序目录 这里面的代码会被打到最终发布包里,并且不要直接在这个目录下写代码
│ ├── [GroupName].Unity.[ModuleName].Runtime.asmdef # - 运行程序集定义 注意:只包含一个定义文件,命名格式 [PkgNamespace].Runtime, 可省略后面的 .Runtime
│ ├── Singleton # -- 运行程序包文件夹
│ │ └── [ModuleName].Runtime.Singleton.cs
│ └── [ModuleName] # -- 运行程序包文件夹
│ ├── Definition.cs
│ ├── [ModuleName].cs
│ ├── [ModuleNameData].cs
│ └── [ModuleNameEnum].cs
├── Editor # 编辑器文件夹(可选) 开发编辑器用到的一些资源或者代码,不会被打到最终发布包里, 并且不要直接在这个目录下写代码
│ ├── [GroupName].Unity.[ModuleName].Editor.asmdef # - 编辑器程序集定义(可选) 注意:建议只包含一个定义文件,命名格式 [PkgNamespace].Editor
│ ├── Default # -- 不分平台,或者默认情况下,请将代码写在这个目录中
│ │ └── [ModuleName].Editor.cs
│ ├── Android # -- 编辑器 android 平台的代码目录
│ │ └── [ModuleName].Editor.Android.cs
│ └── iOS # -- 编辑器 iOS 平台的代码目录
│ └── [ModuleName].Editor.iOS.cs
├── package-lock.json # 依赖版本记录
└── package.json # module 配置,注意: 如果使用源码依赖开发,请不要配置 dependencies 而在发布到 npm 时填充依赖配置
|