この記事は、Firebase Advent Calendar 2019の15日目の記事です。
概要
以前、『FirebaseとUnityでアプリ開発(ハンズオンみたいなやつ)』という記事をアップし、そこでFirebaseとUnityの連携方法を簡単に解説しました。
今回は特定のFirebaseのサービスを扱う際、まずは0から作るのではなく、サンプルを活用してFirebaseとUnityの連携をいち早く体験できる方法のご紹介です。
Unityの場合、AssetBundleをサーバに配置し、UnityWebRequest.Get
などを使ってAssetBundleデータをダウンロードしますよね。
そのため今回は、Cloud Storageを触ってみることで、ゆくゆくAssetBundleデータをFirebaseで管理する設計イメージができないか、まずはやってみましょう。
環境
- MacBookPro Mojave 10.14
- Unity 2019.2.9f1
- Firebase for Unity 6.3.0
セットアップ
まずは、導入方法を参考にFirebaseとUnityの連携準備は済ませておきましょう。
そしてサンプルコードとして公式が用意しているfirebase/quickstart-unityのCloud Storage for Firebase Quickstartを活用します。
一見、FirebaseもUnityも古いバージョンで作られていますが、大幅な変更がない最低限の機能はちゃんと動くので、本格的なアプリへの導入の際の設計・開発で参考にしていきましょう。
Unity側の調整
ですが、活用すると言ってもquickstart-unity/storage/testapp/Assets/Firebase/Sample/Storage/UIHandler.cs
だけ扱うので、クラス名だけ変えてC#スクリプトを作成し、コピペしましょう。
その後、コピペして作ったC#を空のGameObjectにアタッチし、そのInspector上に表示されるGUISkin変数にGUISkinを作成してアタッチしましょう。
また、カメラの調整をSkybox
からSolid Color
に変更して、サンプルが分かりやすいように調整しておきましょう。
Cloud Storageの設定
次にFirebaseコンソール側の作業になります。
Storageのメニューを開き、事前に画像などをアップし、詳細上から画像のリンクをコピーなどしてメモしておきましょう。
次にルールの設定です。
公式の『Storage セキュリティ ルールを使ってみる』に各ルールの設定サンプルがあり、Authを扱わないので今回は公開のルールを扱います。
この公開のルールは、誰でも読み込みと書き込みが可能な設定なので作業終了後に設定を戻しておくようにしておきましょう(自己責任でお願いします🙏)。
実行
Local File Path
とStorage Location
の設定を先ほどメモした内容に書き換えてDownload Bytes
/Download Stream
/Download to File
の各ボタンを押してみると以下のようになります。
成功せず、もしパーミッションエラーで403がある場合は、おそらくルールの設定変更忘れだと思います。
また、Local File Path
の変更を忘れているとデフォルトで設定されているdownloaded_file.txt
の名前でファイルが生成されてしまいます。
さいごに
あとはAssetBundleさえ準備できればいつでもFirebaseで管理できるようになりそうですね。
ちなみにCloud Storageのファイルサイズには上りと下りで制限があるのか気になりましたでしょうか。
『Storage セキュリティ ルールを使ってみる』を読んでいるとルール側でデータサイズを指定して上り下りの制御ができるようです。
ちょっと調べてみたところデータサイズの制限は特にないようなので、普通にAssetBundleのサーバとして扱えそうですよね^^