Unity3d 开发(10)使用uTomate自动化打包流程
在开发过程中,打包是个比较烦的事情。当不能全自动进行时,这种厌恶会达到极致。uTomate作为一种流程化的解决方案,能比较友好的解决打包问题,这篇文章主要探讨,通过这个插件完成基础的打包流程。更多关于这个插件的使用和API信息可以去它的官网查看。
基本原理
在uTomate中有两个层级的概念,即动作和计划。动作是一个原子操作,比如复制文件夹,烘焙场景等。计划是一个流程,它会按照一定规则执行动作。
uTomate中预制了许多动作,可以通过在Project面板中右键
->Create
->uTomate
然后选择对应的动作。有了这些,就可以流程化繁琐的工作了。
打包示例
基于这个插件我编写了Android打包流程,可以一键出包。定制的情况是将AssetBundle中的资源暂时放置到包里,未来应该会编写将AssetBundle上传到服务器上的工作流。我的文件结构如下:
其中Action
目录放置的是基础动作,这些动作根据不同的目的放置到对应的目录中。下面有两个计划分别是打Android包和打IOS包。
制作流程计划首先理清思路创建一系列动作,我的打包流程大体上是这样的:
- 打包AssetBundle
- 复制内容到
StreamingAssets
目录 - 删除AssetBundle的生成目录
- 更新项目的
AssetDataBase
- 导出Andorid包
创建好对应的动作后,在Project面板中右键
->Create
->uTomate
->AutomationPlan
可以创建一个Plain。然后点击Window
->uTomate
->Edit Automation plan...
,选择对应的Plan,会打开Plan Editor
的窗口。将刚才创建的动作拖入到窗口中,并连好线,如下图所示:
运行Plan可以点击Plan Editor
界面右下角的按钮,或打开Window
->uTomate
->MainWindow
,然后选择对应计划点击右下角的Run Plan
。
目录迁移
由于插件中脚本较多,我将Chili4U
和uTomate
两个目录移动到了Plugins
目录下。代码要对应修改如下:
- CUEditorResourcesLocator.cs
public const string ResourcePath = "Plugins/Chili4U/Editor/EditorResources";
- UTEditorResourcesLocator.cs
public const string ResourcePath = "Plugins/uTomate/Editor/EditorResources";
这样可以保证资源正常加载。