最近共同開発でUnityを使うことが増えてきたのですが、その中でUnityのビルドを自動化できるといざビルドして動かしたい時に困らなくていいよなと感じていました。
ただ、Unityのアプリケーションをビルドするには、Unityのエディタ環境(ビルド環境)をGithubActions上で準備する必要があったりします。
今回はGithubActions上でUnityのCI環境を簡単に組めるGameCIの簡単な使い方について調べてみました。
GameCIとは
Unityにおける自動テスト、ビルド、デプロイを行ってくれるCIツールです。
GameCIが用意しているGithubActionsのActionsを使用することで、簡単に自動ビルド等を行うことができます。
実際にCIを組んでみる
下準備
下準備として以下の3つ情報が必要になります。
- Unityのアカウントemailアドレス
- Unityのアカウントパスワード
- Unityライセンス
Unityのライセンスは、PersonalやProなどUnityを使用する際に選択したプランに紐づいた証明書のことです。
Unityライセンスを使用してGithub上でUnityを使うためにアクティベーションを行います。
ulfファイルを取得する
ulfファイルを使ってアクティベーションをおこないます。
ulfは
Unity Licence Fileの略らしい
各OSごとにulfファイルは下のディレクトリに行われています。
Windows: C:\ProgramData\Unity\Unity_lic.ulf
Mac: /Library/Application Support/Unity/Unity_lic.ulf
Linux: ~/.local/share/unity3d/Unity/Unity_lic.ulf
しかし自分の手元ではulfファイルが存在しないため、ulfファイルを発行する必要があります。
発行するためにまずUnityHubの設定画面から下のライセンス画面が表示されます。
ライセンスリクエストによる認証を選択します
すると手順が表示されるので、以下の手順を順番に行っていきます。
まず、ライセンスリクエストをダウンロードを選択して、alfファイルを取得します。
alfは、
Activation Licence Fileのこと
次に、URLを選択します。
alfファイルをuploadします。
すると、次のページが表示されます。
Proライセンス等ではシリアルナンバーがありますが、Personalライセンスはシリアルコードがありません。
学生が使うアカウントや一般使用する場合は、Personalライセンスだと思うのでこのままだと進むことができません。
本来は、Personalアカウント用に表示される部分がオフになってるのでオンにしようと思います。
2025/3/1現在の話なので表示されるように今後なってるかもしれません。
デベロッパーツールで下のoption option-personal clearクラスの部分のcssでdisplay: none;をオフにします。
すると、下の画面が出てくるのでI don't use Unity in a professional capacityを選択します。
ここまでくるとulfファイルがダウンロードできるようになるのでダウンロードします。

Githubのsecrets変数に格納する
リポジトリのSettingsに下のようにSecrets変数を設定できます。
各情報を下の変数名に割り当てて設定します。
- UNITY_EMAIL:Unityアカウントのメールアドレス
- UNITY_PASSWORD:Unityアカウントのパスワード
- UNITY_LICENSE:ulfファイルの中身
ymlを書いていく
.github/workflows内にymlファイルを書いていきます。
今回は自動ビルドを行いたいので下のように記述します。
name: build.yml
on:
workflow_dispatch: {} //手動でビルドできるように
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4 //リポジトリをクローン
- name: build
uses: game-ci/unity-builder@v4 //ビルド
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} //secrets変数を使用する
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
targetPlatform: StandaloneOSX //MacOSを選択する
unityVersion: 6000.0.36f1
actions/checkoutは、Actions内にリポジトリをクローンします。
- name: checkout
uses: actions/checkout@v4
そこからGameCIのActionのgame-ci/unity-builderを使ってビルドを行います。
- name: build
uses: game-ci/unity-builder@v4
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
targetPlatform: StandaloneOSX
unityVersion: 6000.0.36f1
secrets.<変数名>とすることでSecrets変数にアクセスすることができます。
targetPlatformはMacOSに対応しているStandaloneOSXを指定します。
unityVersionでUnityのversionを指定します。
では、このactionsを走らせたいと思います。
Github上の場面からActionsを選択して、先ほど執筆したymlファイルを選択します。
次にRun Workflowsを押すことで手動でActionを走らせることができます。
buildにチェックマークがついたらビルド成功です!
デプロイも自動化する
デプロイも自動化できるのでやってみようと思います。
name: build.yml
on:
workflow_dispatch: {}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: build
uses: game-ci/unity-builder@v4
env:
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
targetPlatform: StandaloneOSX
unityVersion: 6000.0.36f1
- name: Upload Build
uses: actions/upload-artifact@v4 //デプロイ
with:
name: Build //ビルドしたファイル名
path: build //ビルドしたファイルのパス
actions/upload-artifact@v4を使用することでデプロイできます。
nameにはビルドしたファイル名、pathビルドしたファイルのパスを指定します。
uses: actions/upload-artifact@v4
with:
name: Build
path: build
これで先ほどと同じようにデプロイしてみようと思います。
Artifactsにデプロイ結果が表示されます。
ビルドしたファイルをダウンロードして動かしてみます。
そのまま開くのがセキュリティ的にできないので権限を変えます。
xattr -rc <ダウンロードしたファイルのパス>
自己責任でお願いします。
最後に
今回はGameCIを使った、GithubActionsでの自動ビルドとデプロイの方法を調査しました。
GameCIでは自動テストも行えるのですが、あまり自分はやったことがなかったので今回はやりませんでしたが、どこかのタイミングでやりたいと思います。
Unity関連の記事
GithubActionsの記事












