Unity Game CI

更新於 發佈於 閱讀時間約 6 分鐘

前情提要

這次要講的是如何在Unity 專案裡 ,使用 Game CI 提供的 Github Action 將建置專案自動化,細節微操很多,一不小心篇幅就拉得有點長。

但我還是把它放在 10 minutes Unity 專欄裡......

湯姆就是瑪莉

記得做大學專題時,每次輸出一版時間就耗在那裡,專案小還好說,大專案每次Build 半小時就過去了。
我們並不需要非常高效能的電腦去處理輸出,並且希望它能定期完成輸出動作給美術或企劃確認,這個時候 CI(Continuous Integration) 技術就相當重要。

因為是在 Github 上操作,請務必先學會版控技巧!

甚麼是CI / CD

工程師們通常都有一個共通點,就是講求效率,希望一些重複性的操作能夠自動化進行,於是便有了CI/CD 的誕生。

舉個例子,在我大學畢製遊戲時,並不是所有專案成員都熟悉Unity 的操作,但又需要確認目前進度或是錄製提報需要的影片,這時候就會來拜託身為主程式的我建置一版出來。

但非常可惜,那時候的我並沒有掌握這個技術
raw-image

設定Github Workflows

在專案根目錄裡新增路徑 .github\workflows ,並新增三個檔案:
HelloWorld.yaml Activation.yamlBuild.yaml

這時候你的資料夾結構會長這樣:

Project 
├─ .github
│ └─ workflows
│   ├─ Activation.yaml
│   ├─ Build.yaml
│   └─ HelloWorld.yaml
├─ Assets
│ ├─ Scenes
.
.
.
YAML 是一種可讀性高的資料序列化格式

我們先用 HelloWorld.yaml 來簡單練習 Github Workflow 的格式。用腳本編輯器打開它並輸入以下內容:

完成之後將變更 Push 上去。
回到 Github 上點選 Actions ,應該會看到我們的My workflow ,點選 Run workflow 來試試看:

raw-image

靜待一段時間後,My workflow 完成了,我們來看一下結果:

raw-image

這樣你已經完成第一個 Workflow 了,我們可以進入 Game-CI 實戰了!

授權Unity

我們需要授權 Game-CI 容器上的 Unity。

打開 Activation.yaml 並寫入:

這個 Workflow 可以讓我們取得手動授權的 .alf 檔案。同樣到 Github 執行我們的 Acquire activation file

raw-image

執行成功後,Summary 滑到底,將 Artifacts 裡的授權檔下載:

raw-image

Unity手動授權 網站上將我們的 .alf 檔上傳,選擇免費方案後下載授權成功的 .ulf 檔。

raw-image
注意:如果是專業版的用戶,走的是另一個流程!

回到 Github ,因為授權碼不能隨便洩漏,我們需要設定 Github Secrets:

raw-image

需要新增三組 Secret ,分別是 UNITY_EMAIL UNITY_PASSWORD UNITY_LICENSE

raw-image
UNITY_EMAIL - 註冊Unity ID 使用的信箱
UNITY_PASSWORD - Unity ID 帳戶密碼
UNITY_LICENSE - .ulf 檔裡的所有內容

新增完畢後就剩最後一步了,設定 Builder!

Game-CI Builder

打開 Build.yaml 並寫入以下內容:

Push 完後同樣回到 Github Actions ,選擇執行 Build 🥖😭🌭 ,靜待建置完成:

raw-image
注意:Github Artifacts 是有容量上限的,免費版是 500MB
   這個範例裡有設定 retention-days:2 讓 artifact 兩天清理一次

完全自動化

雖然已經不用在自己的電腦上 Build ,但總不可能每次需要才到 Github Action 上操作,違反了我們 CI 的初衷,所以我們可以這樣改寫 Build.yaml

這邊使用到了 POSIX Cron 表達式,上面的範例指的是 每周一三五 (UTC)4:00
台灣是 UTC+8 ,所以是 中午 12 點

如此一來,真正的自動化建置就完成了~

總結

這次介紹了用 Game-CI 來建置,還有很多可以延伸細講的東西,包括如何將自己閒置的電腦當成 Runner 來跑建置、如何將結果輸出到 Discord 上等。最近也有在看同樣是 CI/CD 工具的 Jenkins ,等到學成歸來再看看能不能寫一篇。


留言
avatar-img
留言分享你的想法!
avatar-img
#Jaku的沙龍
6會員
10內容數
只要10分鐘!
#Jaku的沙龍的其他內容
2023/09/05
UPM 插件管理、匯入、打包
Thumbnail
2023/09/05
UPM 插件管理、匯入、打包
Thumbnail
2023/08/15
在其他語言會時常使用正規表達式來幫字串進行 Filter,在遊戲製作裡面比較遇不到處理使用者的字串輸入、資料庫查詢結果的情況,但在編輯程式碼,有搜尋(Ctrl+F)、取代(Ctrl+H)需求時使用 Regex 也能提升工作效率。
Thumbnail
2023/08/15
在其他語言會時常使用正規表達式來幫字串進行 Filter,在遊戲製作裡面比較遇不到處理使用者的字串輸入、資料庫查詢結果的情況,但在編輯程式碼,有搜尋(Ctrl+F)、取代(Ctrl+H)需求時使用 Regex 也能提升工作效率。
Thumbnail
2023/08/06
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
2023/08/06
微軟想把 VS 的一些編輯功能在 VS Code 上實作, Unity 也在幾天前推出了基於 C# Dev Kit 的插件,因為新舊版本並不相容,這邊說明兩種(OmniSharp、Roslyn Analyzers)開發環境設置。
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
在這篇文章中,我們將介紹工作與以前念書時期在開發流程上的差異,並深入瞭解CI/CD、Travis CI以及加解密的應用。 CI/CD是自動化的軟體開發實踐,而加解密則是保護機密資料安全的重要技術。
Thumbnail
前言 上次教到如何使用 environment 去自動設置我們環境那些,今天我們要教 CI/CD 中的 when,通常在自動化佈署上線流程,並不會一路像前幾次一樣,先佈署到測試機,再佈署 demo 機,最後佈署到正式機,我們在佈署正式機的時候,通常會做一個防呆,比如說做成一個指令集,或者是按鈕等等
Thumbnail
前言 上次教到如何使用 environment 去自動設置我們環境那些,今天我們要教 CI/CD 中的 when,通常在自動化佈署上線流程,並不會一路像前幾次一樣,先佈署到測試機,再佈署 demo 機,最後佈署到正式機,我們在佈署正式機的時候,通常會做一個防呆,比如說做成一個指令集,或者是按鈕等等
Thumbnail
前言 大家好上次講到在使用 Gitlab CI/CD 自動化佈署前,使用 Docker Compose 撰寫佈署計畫書,今天我們要將目標轉移到 Gitlab 我們要撰寫自動化上線佈署計畫書,我們之後還會講一套更完整的佈署流程,今天只是讓各位體驗,自動化佈署上線的快感 調整 CI/CD 變數 首
Thumbnail
前言 大家好上次講到在使用 Gitlab CI/CD 自動化佈署前,使用 Docker Compose 撰寫佈署計畫書,今天我們要將目標轉移到 Gitlab 我們要撰寫自動化上線佈署計畫書,我們之後還會講一套更完整的佈署流程,今天只是讓各位體驗,自動化佈署上線的快感 調整 CI/CD 變數 首
Thumbnail
上次我們講完了 only 操作方式,接下來我們要來講解 needs 操作方式,讓我們的 CI/CD 更加仔細,更加完整。 needs 作用 needs 可以在我們整個 CI/CD 流程,去定義在哪個工作之前做完,才會去做下一個工作,假設今天有三個工作,分別叫 "test-build"、"buil
Thumbnail
上次我們講完了 only 操作方式,接下來我們要來講解 needs 操作方式,讓我們的 CI/CD 更加仔細,更加完整。 needs 作用 needs 可以在我們整個 CI/CD 流程,去定義在哪個工作之前做完,才會去做下一個工作,假設今天有三個工作,分別叫 "test-build"、"buil
Thumbnail
本篇使用最簡單的GitLab-ci.yml內容,進而實現了CI的功能,操作方式文章所示。
Thumbnail
本篇使用最簡單的GitLab-ci.yml內容,進而實現了CI的功能,操作方式文章所示。
Thumbnail
還在苦惱怎麼樣把你的檔案上傳到Github嗎?這裡教大家簡單上傳你的檔案可以沿用到如何上傳整體專案到Github並展示你的作品集
Thumbnail
還在苦惱怎麼樣把你的檔案上傳到Github嗎?這裡教大家簡單上傳你的檔案可以沿用到如何上傳整體專案到Github並展示你的作品集
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
如何使用Game CI 提供的Github Action 將建置專案自動化
Thumbnail
開發之前我們先來做一些前置準備,就如同一道料理在完成之前,會預先準備廚具、食材,而我們就來看看這些廚具與食材究竟能夠煮出什麼令人驚豔的料理吧! ● IDE: 基礎版(Remix)、進階版(Vscode)。 ● 程式語言: Solidity。 ● 程式碼儲存庫: Github。 這邊我們會以最簡單的方
Thumbnail
開發之前我們先來做一些前置準備,就如同一道料理在完成之前,會預先準備廚具、食材,而我們就來看看這些廚具與食材究竟能夠煮出什麼令人驚豔的料理吧! ● IDE: 基礎版(Remix)、進階版(Vscode)。 ● 程式語言: Solidity。 ● 程式碼儲存庫: Github。 這邊我們會以最簡單的方
Thumbnail
對於前端工程師來說github上的gh-page是一個很適合放置自己作品的地方 尤其適合想要練練手感的時候可以方便地展示成果的地方 在過去使用手動commit至gh-page的分支上,或是使用deploy.sh檔來部署,對於我這種懶人來說都是多一個步驟,時常會覺得麻煩 現在能夠透過github ac
Thumbnail
對於前端工程師來說github上的gh-page是一個很適合放置自己作品的地方 尤其適合想要練練手感的時候可以方便地展示成果的地方 在過去使用手動commit至gh-page的分支上,或是使用deploy.sh檔來部署,對於我這種懶人來說都是多一個步驟,時常會覺得麻煩 現在能夠透過github ac
Thumbnail
不過因為網站和 repo 都是託管在 GitHub,就想說是不是可以直接在 GitHub 上讓他自動部署就好,我只要把文件上傳上去,接著 CI 就幫我弄好了。剛好之前 GitHub 就有推出 GitHub Actions,就是 GitHub 自己的 CI/CD 服務。剛好可以來試試看,
Thumbnail
不過因為網站和 repo 都是託管在 GitHub,就想說是不是可以直接在 GitHub 上讓他自動部署就好,我只要把文件上傳上去,接著 CI 就幫我弄好了。剛好之前 GitHub 就有推出 GitHub Actions,就是 GitHub 自己的 CI/CD 服務。剛好可以來試試看,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News