Unityに関連する記事です

×

はじめに


 前回は、GitHub Actions から AWS へ接続するために IAM ユーザーと GitHub Secrets を設定しました。

 ここまでで配信基盤の準備は完了しています。

 今回は実際に Unity で Addressables をビルドし、ServerData を Addressables 配信用リポジトリへコピーします。
その後、SourceTree から push を行い、GitHub Actions によって S3 へ自動的に送信(配置)されるところまで確認していきます。


今回の作業フロー


 今回行う作業は以下です。

�� Unity で Addressables をビルドする

�� ServerData を確認する

�� Addressables リポジトリへコピーする

�� Git にコミットする

�� main ブランチへ push する

�� GitHub Actions を確認する

�� S3 を確認する

�� CloudFront 経由で利用可能になる


Unity で Addressables をビルドする


 まずは Unity で Addressables をビルドします。

 Unity のメニューから、

Window
↓
Asset Management
↓
Addressables
↓
Groups

 を開きます。



 Addressables Groups ウィンドウから、

Build
↓
Build Player Content

 を選択します。



 ビルドが成功すると、Addressables の成果物が出力されます。

 出力先はプロジェクト設定によって異なりますが、一般的には以下のようになります。

ServerData
└ Android

ServerData
└ iOS

 この ServerData が実際にゲームから配信されるデータになります。


ServerData を確認する


 生成されたフォルダを確認します。

 例として、

ServerData
├ catalog.json
├ catalog.hash
├ Android
└ iOS

 のような構成になります。



 ここには Bundle ファイルや Catalog ファイルが出力されています。

 この内容が S3 へ配置される対象になります。


Addressables リポジトリへコピーする


 次に、生成された ServerData を Addressables 配信用リポジトリへコピーします。

 例えば、

GameProject
└ ServerData

↓

AddressablesContent
└ Assets

 という形でコピーします。



 この部分も自動化も可能ですが、今回は分業運用を前提としているため、このコピー処理は手動で行います。

 ビルド担当者が成果物を確認してから配信することで、不要なデータ公開を防ぎやすくなるためです。


SourceTree で変更を確認する


 Addressables リポジトリを SourceTree で開きます。

 ServerData をコピーすると、Bundle ファイルや Catalog ファイルが変更ファイルとして表示されます。



 ここのでチェックポイントとしては

不要なファイルが含まれていないか

想定外の Bundle が更新されていないか

削除対象が意図通りか

 を確認しておきます。


コミットする


 問題がなければ変更をステージングし、コミットします。

 コミットメッセージ例です。

Update Addressables Assets

Update Event Data

Deploy ServerData



 ここではまだ S3 への反映は行われません。

 GitHub へ push することで、初めて GitHub Actions が起動します。


main ブランチへ push する


 SourceTree の「プッシュ」を選択し、

main

 ブランチへ送信します。



 ここまで完了すると、

SourceTree
↓
GitHub
↓
GitHub Actions

 の処理が開始されます。


GitHub Actions の実行を確認する


 GitHub を開き、

Actions

 タブを確認します。



 Workflow が正常に開始されると、

Deploy Assets to S3

 が表示されます。



 実行中はログを開くことで、

Checkout

Configure AWS credentials

Sync assets to S3

 といった処理内容を確認できます。



 すべて成功すると、

Success

 として表示され、処理が完了します。





実際に S3 を確認する


 続いて AWS コンソールを開き、

S3
↓
対象バケット

 を確認します。



 GitHub に push した成果物が配置されていれば成功です。

 例として、

Assets
├ catalog.json
├ catalog.hash
└ Bundle

 のように配置されます。



 ここまで完了すると、CloudFront 経由でゲームから利用可能になります。


配信されない場合の確認ポイント


 もし反映されない場合は、以下を確認します。

GitHub Actions が成功しているか

Secrets の設定が正しいか

S3_BUCKET 名が正しいか

ServerData のコピー先が正しいか

main ブランチへ push しているか


今回のまとめ


 ここまでで、

Unity
↓
Addressables Build
↓
ServerData
↓
GitHub
↓
GitHub Actions
↓
S3
↓
CloudFront
↓
ゲーム

 という配信フローが完成しました。

 これにより、ゲーム本体を更新せずに Addressables のみを配信できる状態になりました。


次回予告


 次回は、開発環境・検証環境・本番環境で Addressables の配信先を切り替える運用方法について説明します。

 main だけではなく、環境ごとに S3 や CloudFront を分離して運用する構成も紹介していきます。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



基礎

技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます

広告募集中