4.10.5 (2024-12-23)
Bug Fixes
## 三、UPM包配置
### 3.1 package.json 文件详解
package.json是UPM包的核心配置文件,定义了包的元数据、依赖关系和示例信息。以下是ParticleEffectForUGUI的package.json关键配置:
```json
{
"name": "com.coffee.ui-particle",
"displayName": "UI Particle",
"version": "4.10.5",
"unity": "2018.2",
"description": "在uGUI中渲染粒子效果,支持遮罩、排序,无需额外相机/渲染纹理/Canvas。",
"dependencies": {
"com.unity.ugui": "1.0.0",
"com.unity.modules.particlesystem": "1.0.0"
},
"keywords": ["ui", "particle", "effect", "mask"],
"samples": [
{
"displayName": "Demo",
"description": "UI Particle演示场景和资源",
"path": "Samples~/Demo"
}
]
}
关键字段说明:
| 字段名称 | 说明 | 示例值 |
|---|---|---|
| name | 包的唯一标识符,采用反向域名格式 | com.coffee.ui-particle |
| displayName | 在Unity包管理器中显示的名称 | UI Particle |
| version | 语义化版本号 | 4.10.5 |
| unity | 最低支持的Unity版本 | 2018.2 |
| dependencies | 依赖的其他包 | com.unity.ugui: 1.0.0 |
| samples | 示例资源配置,path以Samples~开头 | Samples~/Demo |
3.2 程序集定义文件(.asmdef)
程序集定义文件用于指定代码的编译规则和依赖关系,提高编译效率并避免命名冲突。
运行时程序集定义(Runtime/Coffee.UIParticle.asmdef):
{
"name": "Coffee.UIParticle",
"references": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": []
}
编辑器程序集定义(Editor/Coffee.UIParticle.Editor.asmdef):
{
"name": "Coffee.UIParticle.Editor",
"references": ["Coffee.UIParticle"],
"includePlatforms": ["Editor"],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": []
}
四、版本发布流程
4.1 版本发布准备工作
在发布新版本前,需要完成以下准备工作:
-
更新版本号:
- 修改package.json中的version字段
- 确保与CHANGELOG.md中的最新版本条目匹配
-
完善变更日志:
- 按照Keep a Changelog规范,记录新功能、修复的问题和破坏性变更
- 为每个变更项添加对应的提交哈希和Issue链接(如
closes #346)
-
代码检查与测试:
- 运行单元测试(如有)
- 在不同Unity版本中测试兼容性(至少覆盖支持的最低版本)
- 验证示例场景是否正常运行
4.2 构建UPM包
UPM包本质上是一个符合特定目录结构的压缩文件。可以通过以下步骤构建:
-
清理不必要的文件:
- 移除版本控制目录(如.git)
- 删除临时文件和日志
- 确保Samples~目录中的资源仅用于示例,不包含在正式包中
-
使用Unity Package Manager构建:
可以通过Unity编辑器的Package Manager窗口导出包,也可以使用命令行工具:
# 假设当前目录为项目根目录 cd /data/web/disk1/git_repo/gh_mirrors/pa/ParticleEffectForUGUI # 创建包输出目录 mkdir -p ../upm_packages # 使用Unity的Package Manager命令行工具构建包 # 注意:需要将Unity可执行文件路径添加到环境变量 unity -quit -batchmode -createPackage . ../upm_packages/com.coffee.ui-particle-4.10.5.unitypackage -
手动构建(备选方案):
如果没有Unity命令行环境,可以手动压缩包内容:
# 进入项目根目录 cd /data/web/disk1/git_repo/gh_mirrors/pa/ParticleEffectForUGUI # 压缩必要文件和目录,排除不需要的文件 zip -r ../com.coffee.ui-particle-4.10.5.zip \ CHANGELOG.md LICENSE.md package.json README.md \ Editor/ Runtime/ Shaders/ \ -x "*.git*" "*.meta" "Samples~/*"注意:.meta文件是Unity的元数据文件,在UPM包中通常不需要包含,Unity会在导入时自动生成。
4.3 包验证
构建完成后,需要验证包的完整性和正确性:
-
本地测试安装:
在Unity项目中通过"Add package from disk..."选项导入构建好的包,验证:
- 包是否成功导入
- 组件是否在Inspector中正常显示
- 示例场景是否可运行
- 粒子效果是否正确渲染(遮罩、排序等功能)
-
检查包内容:
解压构建好的包,检查文件结构是否符合预期:
com.coffee.ui-particle-4.10.5/ ├── CHANGELOG.md ├── LICENSE.md ├── package.json ├── README.md ├── Editor/ ├── Runtime/ └── Shaders/
4.4 发布到Git仓库
ParticleEffectForUGUI使用Git仓库作为UPM包的源。发布到Git仓库的步骤如下:
-
提交版本更新:
# 添加修改的文件 git add CHANGELOG.md package.json # 提交变更 git commit -m "chore(release): bump version to 4.10.5" # 创建版本标签 git tag -a v4.10.5 -m "Version 4.10.5" # 推送到远程仓库 git push origin main --tags -
配置Git仓库作为UPM源:
其他用户可以通过以下方式将Git仓库添加为UPM源:
https://gitcode.com/gh_mirrors/pa/ParticleEffectForUGUI.git?path=/data/web/disk1/git_repo/gh_mirrors/pa/ParticleEffectForUGUI或者在Unity的Package Manager中使用"Add package from git URL..."选项,输入:
https://gitcode.com/gh_mirrors/pa/ParticleEffectForUGUI.git#v4.10.5
五、常见问题与解决方案
5.1 包导入失败
问题表现:在Unity中导入包时提示错误,如"Manifest file is invalid"。
解决方案:
- 检查package.json的JSON格式是否正确(可使用JSONLint验证)
- 确保version字段符合语义化版本规范
- 检查依赖项是否存在且版本兼容
5.2 组件不显示在Inspector中
问题表现:导入包后,UIParticle组件未出现在Unity的组件菜单中。
解决方案:
- 检查Editor目录下的编辑器脚本是否正确编译
- 确认程序集定义文件中的引用是否正确
- 验证组件类是否添加了[AddComponentMenu]属性:
[AddComponentMenu("UI/UI Particle")]
public class UIParticle : MonoBehaviour
{
// ...
}
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



