Unity快速开发和协作的模式是怎么样的

 查看数: 14 | 7 天前
提问:黄小厨

马上注册成为元素者,获取海量元素资源,结识各路大神级人物

您需要 登录 才可以下载或查看,没有帐号?注册

x
image.png 题图是jenkins自动增量build bundle,同时启动4个编辑器的运行时间,mac mini。
目的
  • 加快打包打bundle速度
  • 不在出版本时突然爆发大量bundle问题
  • 在编辑器中能方便调试bundle问题
  • 分离代码和资源的权限管理,同时美术策划能在编辑器中运行游戏
  • 程序能方便使用分支开发功能
  • 在日常开发中磨炼线上流程
  • 降低美术提交错误资源的概率
  • 减少手动重复劳动提高效率

7 天前  

使用道具 登录

1个回答,把该问题分享到群,邀请大神一起回答。
build方式
监听提交,每次提交后jenkins对全平台增量打bundle(也包含其他可更新文件,比如lua和音频等,下同)
当然要实现一个高效率的自动分析依赖打bundle的机制
闲置打包机是浪费,程序员应该充分压榨机器,再被资本家压榨
用rsync将bundle同步到内网资源机用于更新,资源机上有历史上全部bundle
如果失败则向钉钉报告
bundle文件名带有hash或md5用于区分不同build
lua转为bytecode并加密后才会上传资源机
build player时可能不需要打bundle,最多是再增量打一次
资源下载加载
实现线上的资源下载更新机制,部署在内网用于日常开发
编辑器中运行游戏要支持3种资源加载模式,加载不同来源的资源:
本地Asset:用AssetDatabase加载asset,不用resouces目录,用于测试本地编辑的资源
本地bundle:本地要有工具和环境能build bundle,用于调试bundle相关问题
远程bundle:差异更新下载到本地,模拟手机上的资源环境。
编辑器中运行游戏主要以远程bundle模式为主,尽早暴露问题,分摊到日常解决,不堆到deadline
如果bundle模式出问题跑不了,可以用本地资源模式顶着
编辑器中直接使用android/ios bundle有问题,不做特殊处理的话用pc/mac平台是可以的
svn + git多仓库协作模式
美术使用svn单分支日常开发,unity工程在svn中,包含资源和c#代码
c# dll很容易被反编译,达不到保密目的。还不清楚能混淆保密且方便开发的机制
程序使用git存lua,多分支开发
将git 和 svn合并起来组成完整版本
因为美术策划用svn里的unity工程,没有lua,只能靠热更下载lua
只有程序有权限修改c#
多仓库模式的改进设想
问题
c#不在git中,不方便分支开发,很难跟多分支lua匹配
美术工程的lua只能靠更新下载,如果build有问题就没法更新
解决方法
用svn external链接美术unity工程的资源,构造一个只有资源没有代码的unity工程,资源部分跟美术工程是同一个东西。源头有提交的话外链处即可更新
将lua和c#都放到git里,跟没有资源的unity工程结合即可表示完整版本
使用工具将git develop分支的内容同步到美术unity工程中,也就是发布代码过去,lua要加密,在纯粹美术unity中也有完整游戏环境了
回复 收起回复
B Color Smilies
还可输入 200 个字符
7 天前  
 赞 赞 1

使用道具 登录

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表