U3DMakeStandaloneWindows64 是否仍然叫 U3DMake 好?
有以下命令:
- svn co EggN:检出工程,会有U3DMakeStandaloneWindows64,没有U3DMakeAndroid和U3DMakeiOS
- svn up EggN:从根目录来更新,会更新U3DMakeStandaloneWindows64,不会更新U3DMakeAndroid和U3DMakeiOS
- u3dupdate svn Android:通过svn更新U3dMakeAndroid目录
- 尝试创建U3dMakeAndroid目录
- svn list https://svn.cdgames/svn/Egg1/trunk/Develop/U3DMakeStandaloneWindows64获取子目录
- 针对每个子目录进行svn co或者svn up
- 写U3dMakeAndroid/SvnUpdate.bat,方便手工更新。(暂时还用不到)
- u3dupdate svn iOS:通过svn更新U3dMakeiOS目录
- u3dupdate copy Android:同步本地U3DMakeStandaloneWindows64的文件到U3dMakeAndroid
- 如果不存在U3dMakeAndroid,则先u3dupdate svn Android
- svn list -R U3DMakeStandaloneWindows64生成源目录svn管理的文件列表
- svn stat U3DMakeStandaloneWindows64生成源目录添加或者删除的文件列表
- 遍历FairyGUI工程,获取UI包列表,推导出ui资源文件列表
- svn revert U3dMakeAndroid 将目标目录中的改动还原
- 遍历源目录svn管理的文件列表和添加文件列表和ui资源文件列表,拷贝最新到目标目录
- 遍历源目录的删除文件列表,尝试删除目标目录存在的文件
- 遍历目标目录的ui资源文件,删除不在源目标的ui资源文件列表中的文件
- u3dupdate copy iOS:同步本地U3DMakeStandaloneWindows64的文件到U3dMakeiOS
- u3dupdate http ip: 同步远程ip的U3DMakeStandaloneWindows64的文件到本地
- 连接目标ip的IO工具,命令IO工具生成其源目录的svn管理的文件列表和添加删除文件列表以及ui资源文件列表
- 通过http下载上述文件列表
- 类似copy,通过上述的文件列表同步目标目录
- u3dupdate http ip remote_os local_os:同步远程ip的一个U3DMake目录到本地的一个U3DMake目录。先不用实现,如果又需求再说。
这个方案的好处:
- 如果一个人只启动windows的客户端,则只需要svn co后,从U3DMakeStandaloneWindows64打出ab即可
- 一个工程目录能同时打3个平台的ab,能打开3个U3DMake的Unity编辑器分别进行编辑,3个目录都能分别svn ci
- 本地U3DMake目录同步只同步被SVN管理的资源文件和UI资源文件,不会一股脑的什么文件都同步。这样copy和svn up对所管理的文件是一样的。(本地临时添加和删除的文件需要本地先svn add或者svn del才能同步)
- 远程U3DMake目录同步只需要远程机器启动了IO工具和部署了客户端下载站点即可。其绝大部分工作流程和copy一样,最终的效果和copy一致。
- 比较绿色。无论工程目录svn co到哪里,都无需有额外的文件或者环境变量的配置。
- 这个目录结构能保证一个完整的EggN(忽略ZDocument)而不只是完整的Develop。这样ZTool目录也在工程中。
- 只需要写一个u3dupdate的脚本实现命令行支持。打多平台ab的源文件的管理逻辑全部再这一个地方,这样就无需多个地方写代码。
- 本地打ab,版本机打ab,其流程和所需参数都一致。
这个方案的缺点:
- U3DMake中的打包AB脚本需要能兼容下U3DMakeStandaloneWindows64、U3DMakeAndroid和U3DMakeiOS三中情况。我大概看了,只有少许几个地方要改。这样改为后,都在一个工程目录下,打包出来的ab就直接在指定的地方了。
- 对于版本机,在打包手机的ab的时候会额外up下U3DMakeStandaloneWindows64,但是打ab的时候又用不到。
- 如果同时的隔离的开发windows下和android下的Client目录,则需要另外svn co一个目录来搞,而旧方案恰好为每个操作系统提供了Client。但是如果是同时的隔离的开发windows下的Client和U3DMake,则新旧方案都需要额外的再svn co一个工作目录。
- Client目录需要切换不同的操作系统