Cocos Creator 2.4 APK 还原为工程文件(1)
本篇文章介绍了如何将 Cocos Creator 2.4 的 APK 文件还原为工程文件,特别是针对图片资源的还原过程。
1.1 正常图片还原
- 在
config.json
文件中的paths
配置部分,包含了文件路径和图片类型(如cc.Texture2D
)。 - 通过解析 UUID,找到对应的图片名称,并将其导出到指定位置。
1.2 未知图片还原
- 在
config.json
文件中,packs
数组中的元素对应的 JSON 文件中,可能包含一些未定义路径的图片资源。
1.3 还原方案
- 遍历所有模块,找出所有图片,并将其记录为
file
。 - 遍历每个模块,找到 1.1 节中提到的正常图片资源,并将其写入
file.frames
数组中。 - 遍历
config.json
中类型为cc.SpriteAtlas
的文件,将其中所有的图片数据写入对应的file.frames
中。 - 遍历
config.json
中的packs
,解析 JSON 数据,找到 1.2 节中的未知图片资源,并将其写入对应的file.frames
中。 - 每张图片的
frame
中都记录了frame
的 UUID、大小、旋转等数据。 - 通过解析
file.frames
,可以判断数组长度是否为 1,并且判断frame
的大小是否等于图片的大小,如果是,则处理为单图。 - 如果不是单图,则将所有
frame
写入 plist 文件。
1.4 Meta 文件还原
- 根据单张图片的
texture
UUID 和frame
UUID 生成 meta 文件。 - 如果是图集,则为 plist 文件生成对应的 meta 文件。如果 plist 文件中没有 UUID,则生成一个新的 UUID 供 plist 使用。
1.5 注意事项
- 图集数据可能分散在多个模块中,必须遍历完所有模块后才能确定最终的合图数据。
- 在某些情况下,图集中可能只有一张图片被使用,此时也只能得到一张图片的数据,仍然会生成一个 plist 图集。
- 如果后续使用 plist 文件,需要记录每个
frame
对应的 plist 的 UUID(有的 plist 的 UUID新生成的);这些信息在还原预制体和场景时非常重要。 - 图集中的图片也可以全部导出为单独的小图。
2 学习与交流
- 欢迎加 QQ 985251414,一起学习与交流!