工业化的定义:
制作流程呈现标准化、工具化、自动化、平台化
标准化:规范和框架,提供通用能力
规范:
1.程序编码规范
2.美术资源规范
3.开发流程规范
4.维护发布规范
框架:
1.在一个项目的起始阶段,提供一个必选的包Framework,和多个可选包,都以UnityPackages形式存在。必选包内包含的是所有项目都需要用到的内容,如资源加载,资源打包,Lua框架,美术格式导入,UI框架等等,防止每个项目组自己去重复造轮子。
2.提供统一的编程范式,规范程序的书写习惯。
自动化的定义:
在无人参与的情况下,利用控制装置使被控对象或过程自动按照预定规律运行。
1.美术资源导入的自动化。
2.关于SVNMerge的自动化
3.关于自动定位项目阻断的自动化
4.减少重复等待时间,工具栏扩展,Unity快速启动模式
技术:
Unity的AssetBundle资源加载改为自己的一套资源加载VirtualFileSystem(一看就比较高大上,咱不研究)
资源加载不再采用字符串路径的方式去加载,防止产生lua和C#的字符串消耗,用hashcode代替。
业务逻辑(lua)不持有或访问任何GameObject,防止编写不规范导致的内存泄漏,在lua层创建实例的时候拿到的只是一个id。
在玛雅中就能将资源导出并自动导入到Unity中进行一系列的设置,如果做不到在玛雅中一键导出,也可以做到将导出的资源放置在文件夹中,通过一个py工具,将资源导入到Unity并进行一系列的设置,包括资源命名等,同时还能加入限制,例如模型的面数超过限制,模型为中文名,名字长度超出等,可以直接导入失败,还能限定死美术提交的目录,避免提交错误。
自动Merge工具,在SVN提交时需要将Tapd单号放在日志中,Merge工具可以将对应Tapd单号的记录自动Merge到别的分支(神器)
自动定位项目阻断并分发到对应人的工具(自动冒烟这个不大清楚咋做),可以考虑做一个工具,将阻断的报错日志输入,找到关键字和关键文件,结合SVN最近提交信息,找到对应提交人,直接在大群中通知给提交者。另外还有Log日志的管理,可以做个Jenkins工程检查每日提交的Log日志,通知到群里,让大家检查是否有必要提交。
Unity快速启动模式(2019),在ProjectSetting->Editor->EnterPlayModeSettings->EnterPlayModeOptions,这样设置会使的程序中的static变量会保留上次运行时的状态,需要在变量上加上[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)],静态时间上加上[RuntimeInitializeOnLoadMethod]
LuaReload功能
Lua日志跳转功能,双击可以打开日志
感谢江南工作室大佬的分享,启发点超级多