【完全版】Unity Cloud Buildの使い方(マルチプラットフォーム、メール通知)
目次
はじめに
こんにちは、のんびりエンジニアのたっつーです。
Twitter(@kingyo222)で Unity情報 を発信しているのでよければフォローしてください!
今回は、Unity公式サービスの「Unity Cloud Build」をわかり易く解説させていただきます。
Unity Cloud Build のメリット、基本的な使い方、応用的な使い方、マルチプラットフォームの設定方法などを記述させていただきます。
Unity Cloud Build とは?
まずは公式の説明を見てみましょう。
ゲームのビルドを高速化しよう
「Cloud Build」では、クラウド上で高速にビルド作業を行ない、共有することができます。また、「Cloud Build」実行時は自動でコンパイル、デプロイ、試験などの処理も行なうため、チームによる運用も簡単です。
その設定も、すでに持っているソースコード管理のレポジトリを用いて手軽に行なうことが可能です。
大事な部分は1つ
「クラウド上で高速にビルド作業が行われる」
ここの部分になります、ビルド作業+前後の作業を自動化するための仕組みになります。
例えば、マルチプラットフォーム対応ゲームの場合、Android/iOS/Windowsなどの実行ファイルを生成するのにいちいちUnityを起動してビルドを切り替えて、ビルドファイルを生成して・・・という作業は大変ですよね。
そこで、Unity Cloud Build では以下を自動化してくれます。
- Gitの更新を監視
- ビルド・コンパイル(Android、iOS、Windows)
- テスト実行
- デプロイ
上記の太字「ビルド・コンパイル」が注目される作業になるかと思いますが、Unity Cloud Build ではその前後のソースコードの取得〜デプロイまでの流れをすべて自動で対応してくれます。
Unity Cloud Build 便利なの?
超絶便利です、何が便利なのかというと。
- クラウドで実行
- マルチプラットフォームのビルド
- 長時間ビルドから開放される
- ソースコード変更〜デプロイを自動化
クラウドで実行
クラウド上で実行されるため、過去のビルドの結果、現在のビルドの進行具合などの情報が参加者全員に共有されます。
マルチプラットフォームのビルド
Mac / WebGL / Windows / Android / iOS のビルド作業をクラウド上で逐次実行してくれます。
Macで開発をしている場合でもクラウドビルドを使えば、Windowsバイナリを生成できます。またその逆も可能です。
長時間ビルドから開放される
ビルドで長時間待たされる事から開放されます。
WebGLとかだとプレーンなプロジェクトでも10分ほどビルドで待たされ、PCが使えない事などが多いですよね。
ソースコード変更からデプロイを自動化
ソースコードの変更を関しして、自動ビルド、テスト、デプロイまでを自動で行なえます。
例えば、
devブランチを開発用
releaseブランチをリリース用
にした場合に、devからreleaseにマージしたタイミングでCloudBuildの実行を自動化しておけば、マージ処理をするだけでリリースまでを自動で行うことができます。
Unity Cloud Build の基本的な使い方
それではさっそく使い方を説明致します。
まずはライセンス
以前は、Personalライセンスでも無料で使えたのですが、今は Unity Team Advanced に Cloud Build が含まれています。
また、Proライセンスをお持ちの方は無料で使えます、Personalの方は月額 $9.99(初月無料)がかかります。
初月は無料のためお試しで使ってみるのはいかがでしょうか。
プロジェクト作成
まずはプロジェクトが無いと何もできないのでサクッと適当なプロジェクトを作成しましょう。
今回はプロジェクト名「BuildTest」で作成しました。
また、今回の実行環境はマックになります。
また、ちょっと絵が寂しいのでオブジェクトを追加しました。
シーンを追加していないとビルドに失敗してしまため、追加しておきましょう。
また、Androidの場合は「Bundle ID」などにネームスペース「jp.fastsystem.buildtest」などを追加しないと行けない場合があるので注意しましょう。
設定が漏れてしまった場合、実際のビルドでエラーが確認できるので安心ですね。
Cloud Build サービス連携
次に、Unity Cloud Buildを使うためにサービスの連携を行います、「Window > General > Service」を選択してください。
サービスを連携する、Organizationを選択して「Create」をクリックしてください。
こんな感じの画面になればOKです。
Unityエディタ上でもCloud Buildの設定が行えますが今回は、Webサイトで実際に手順を行います。
Gitにプッシュ
実際に、Unity Cloud Build を動かす場合にはGitの連携がほぼ必須になります。そこで今回はGithubを使ってみたいと思います。
さきほどのプロジェクトをGitにPushします。
Githubにこんな感じの「BuildTest」リポジトリを作成して、Unityプロジェクトを追加しました。(Library、Log、Tempフォルダなどを一時ファイルなのでPushしないように気をつけてください。)
Git連携
次に、Webサイトから上記のGit連携を行います。
Unity Dashboard にアクセスしてログインしてください。
すると、先程作成したプロジェクトが作成されています。「Cloud Buildサービス連携」の手順を実行するとクラウド上に自動的に作成されます。
対象のプロジェクトにアクセスしてください。
左のメニューから「Cloud Build > Build Histoy」を選択してください。
まだ、何もビルドの設定をしていないので初期表示の画面になります。
「SET UP CLOUD BUILD」を選択して初期設定を行います。
GitHub、Bitbucket、GitLabが標準で選ぶ事ができます。
今回は、Githubを選択します。
ここで、Githubのログインが要求される場合はログインの支持にしたがってください。(私はすでに連携済みのためこの画面がでません)
次に対象のリポジトリを選択、ここでは「fastsystem/BuildTest」を選択すると、Gitの連携設定が完了します。
引き続き、どのプラットフォームビルドを行うかの設定になります。
ビルド設定
「Git連携」に引き続き次の画面が表示されます。
ここでは、Windowsを選択します。
(今Macで開発を行っていますがWindowsのビルド&実行ファイル生成も行えます、Cloud Build便利ですね)
ビルドの詳細になります。
変更した点は2箇所になります。
- ラベル
- 任意の文字になります、初期値が長いので短く
- Auto Detect Version
- ビルドするUnityバージョンを指定します。ONにすると自動でプロジェクトのUnityバージョンを判定します。
実行結果の確認
お疲れ様です、上記で自動ビルドの設定が終わりました。
ビルドヒストリー画面に遷移して、以下のような表示になります。
すでに上記設定したビルドが実行されていますので、10分ほど待つとビルドが正常に行えたか確認できます。
超高速にビルドがおわるとおもいましたか?
実はUnityの小粋なジョークです。クラウドビルドでも普通に時間がかかります(ToT)
・・・
(5分後)
・・・
お、ビルドが正常に完了したみたいですね。
エラーの場合はここにエラーと表示されますので「VIEW DETAILS」をクリックしてエラーの内容をチェックしてください。
今回は、「4分19秒」のビルド時間がかかったみたいです。
以上で簡単なCloudBuildの手順説明になります。
Gitのソースコードが更新されるたびに、再度ビルドが自動発生するのでぜひ確認してみてください。
Unity Cloud Build の応用的な使い方
Unity エディタでも確認
「Cloud Build サービス連携」がすでに実行されている場合、Unity エディタ上でもCloudBuildの進捗の確認および設定変更が行えます。
Servicesウィンドウを表示してください。
Unityエディタ上でこんな感じで表示されます、ビルドが正常に完了しているものには「Downlaod」ボタンが表示されいますね。
別プラットフォームのビルド設定を追加
現状では「win64」のビルド設定しかない状態です。
サイドメニューから「Config」を選択、「SETUP NEW TARGET」を選択すると、別のプラットフォームMac、Androidなどが追加できます。
アセットバンドルのビルド
各プラットフォームの設定には、アセットバンドルのビルドを含めることができます。「Asset Bundle Options」で該当の設定をONにする事で、ビルド内容にアセットバンドルが含まれるようになりあす。
ビルド前後でスクリプトを実行
対象のプラットフォームで「Advanced Options」の設定を編集します。
「Pre〜」がビルド前に実行されるメソッド
「Post〜」がビルド後に実行されるメソッド
になります、クラスパスとメソッド名をそれぞれ指定すると実行されます。
WebGLならそのまま実行できる
WebGLで出力した場合ってサーバにアップロードしてからじゃないと実行確認ができないですよね。Cloud Buildならそのままブラウザで実行確認が行えます。
ビルド終了時に自動でメール通知
ビルドが完了した場合に、メールの通知が必要な場合は以下の設定を確認してみてください。
Cloud Buildの情報を取得する
Cloud Buildの情報が自動生成されたランタイム時に読み込み可能。Resourcesファイルに UnityCloudBuildManifest.json が生成される。
こんな感じの情報が取得できます。(Slideshare)
よければ、SNSにシェアをお願いします!