LoginSignup
11
4

More than 3 years have passed since last update.

FirebaseとUnityの連携 入門(Cloud Storage編)

Last updated at Posted at 2019-12-14

この記事は、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-unityCloud Storage for Firebase Quickstartを活用します。

一見、FirebaseもUnityも古いバージョンで作られていますが、大幅な変更がない最低限の機能はちゃんと動くので、本格的なアプリへの導入の際の設計・開発で参考にしていきましょう。

Unity側の調整

ですが、活用すると言ってもquickstart-unity/storage/testapp/Assets/Firebase/Sample/Storage/UIHandler.cs
だけ扱うので、クラス名だけ変えてC#スクリプトを作成し、コピペしましょう。

その後、コピペして作ったC#を空のGameObjectにアタッチし、そのInspector上に表示されるGUISkin変数にGUISkinを作成してアタッチしましょう。

スクリーンショット 2019-12-14 23.03.40.png

また、カメラの調整をSkyboxからSolid Colorに変更して、サンプルが分かりやすいように調整しておきましょう。

スクリーンショット 2019-12-14 23.14.04.png

Cloud Storageの設定

次にFirebaseコンソール側の作業になります。

Storageのメニューを開き、事前に画像などをアップし、詳細上から画像のリンクをコピーなどしてメモしておきましょう。

次にルールの設定です。
公式の『Storage セキュリティ ルールを使ってみる』に各ルールの設定サンプルがあり、Authを扱わないので今回は公開のルールを扱います。
この公開のルールは、誰でも読み込みと書き込みが可能な設定なので作業終了後に設定を戻しておくようにしておきましょう(自己責任でお願いします🙏)。

スクリーンショット 2019-12-14 23.04.33.png
スクリーンショット 2019-12-14 23.08.35.png
スクリーンショット 2019-12-14 23.08.52.png

実行

Local File PathStorage Locationの設定を先ほどメモした内容に書き換えてDownload Bytes/Download Stream/Download to Fileの各ボタンを押してみると以下のようになります。

成功せず、もしパーミッションエラーで403がある場合は、おそらくルールの設定変更忘れだと思います。
また、Local File Pathの変更を忘れているとデフォルトで設定されているdownloaded_file.txtの名前でファイルが生成されてしまいます。

スクリーンショット 2019-12-14 23.15.11.png
スクリーンショット 2019-12-14 23.15.18.png
スクリーンショット 2019-12-14 23.15.51.png

さいごに

あとはAssetBundleさえ準備できればいつでもFirebaseで管理できるようになりそうですね。

ちなみにCloud Storageのファイルサイズには上りと下りで制限があるのか気になりましたでしょうか。
Storage セキュリティ ルールを使ってみる』を読んでいるとルール側でデータサイズを指定して上り下りの制御ができるようです。

ちょっと調べてみたところデータサイズの制限は特にないようなので、普通にAssetBundleのサーバとして扱えそうですよね^^

 

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4