【发布时间】:2022-01-25 23:40:34
【问题描述】:
我目前正在从事多个 Unity 项目,这些项目共享相当多的预制件、脚本等。 这些或多或少是多个具有相同基础的“迷你游戏”。 我目前正在一个网站上通过 WebGL 展示这些游戏,该网站从我将文件上传到的 Azure Blob 存储请求数据文件(wasm、数据等)。 此上传是通过我为团队中的各种开发人员设置的单独页面进行的。 问题如下:
- 开发人员都在他们的开发机器上构建游戏,这会“锁定”PC 以防止任何其他用途/进一步开发
- 他们有通过第二个网络应用上传游戏的“工作”
出于这些考虑,我想自动化这个过程。到目前为止,我的想法是使用 Unity Cloud Build(因为我们已经拥有 Unity plus 和 Teams 高级版)或使用 Github Actions 并通过 Git 存储库对其进行源代码控制。
我对这两个选项的问题是:
- Cloud build / Collaborate 显然不支持分支(总是在提交时构建,但有时用于将进度“转移”到另一台机器),Cloud build 很难根据我们的需要进行定制(必须以某种方式上传文件在构建到 blob 存储之后(可能是通过 FTP 或类似的方式)
- 我没有使用 Github 控制 Unity 文件和项目的经验(我了解 Github 本身以及如何使用它))
我遇到的最后一个问题是,正如开头所说,所有“游戏”都在同一个 Unity 项目中,以便更轻松、更快地开发下一个游戏(每周)并使用我所做的源代码控制不想每次都构建所有游戏,而是选择我要构建的游戏(云构建/github操作)。
所以我的问题特别是:
- Cloud Build / Github Action 是否适合我的需求
- 我将如何控制要构建和部署哪些游戏以及不部署哪些游戏(我想到了在主/主分支提交时触发构建,然后检查哪些文件已更改并为这些文件获取相应的“游戏”)
- 与本地构建选项相比,云构建解决方案的速度快/慢(开发人员拥有相当多的机器(i7-10xxx、i9-11xxx + rtx 30xx 和 m.2 ssds)
也许有更多经验的人可以帮助我!
干杯
【问题讨论】: