建议
- 导入资源包时,自动比对资源包内的 uuid 和现有包体内的有无冲突。
- 如果有冲突,在导入前的资源列表确认界面上,就显著标识,并且标识清楚是 【uuid 和文件都相同】、【uuid 相同但文件不同】、【uuid 不同、但文件路径相同、且文件相同】、【uuid 不同、文件路径相同、文件也不同】。
- 对于冲突的项目,可以手动选择是 【导入为新资源】、【使用已有资源】、【覆盖已有资源】。
(类似 Git 的冲突合并机制,对每个文件都可以单独提示和设置)
使用场景
- 开发一个庞大的项目,需要拆分成若干子系统和组件。
- 由于项目规模和组织架构原因,需要拆分成若干个 Git 仓库和 Cocos 项目开发各个模块。
- 模块之间有独立性,也有公共资源的引用。
- 个别模块,会修改少量公共资源。
举例
某大型游戏的活动运营系统,由外包人员开发。出于代码安全考虑,外包人员拿不到游戏的程序包体,只能获取有限的【公共资源】。例如(通用按钮底图、背景图、部分组件脚本等)
场景 1
游戏主包换了一套 UI(换了按钮底图、背景图),但外包是在此之前拿到的通用资源开发活动,希望导入资源包后,对于【运营活动】,也能自动引用新的 UI 通用资源。此时,需要根据【uuid 相同但文件不同】的提示,手动将指定资源设置为【使用已有资源】。
场景 2
外包人员开发活动,因为 UI 设计原因,外包人员修改了部分通用素材图片。
希望在导入资源包时,外包人员的修改仅仅限于其开发的运营活动生效,而不会覆盖污染全局的通用 UI。此时可以根据【uuid 相同但文件不同】的提示,将相应的资源设置为【导入为新资源】。
等等。
如此,将极大有利于分项目的组件化开发协作。 @jare