Help us understand the problem. What is going on with this article?

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

この記事は、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のサーバとして扱えそうですよね^^

 

gremito
Freelance Engineer: Unity / Android / Xamarin / CodeIgniter / FuelPHP / CakePHP / WordPress / Rails / AWS / MySQL / SQLite / Jenkins / Docker / Firebase / LINE Bot ...etc
unity-game-dev-guild
趣味・仕事問わずUnityでゲームを作っている開発者のみで構成されるオンラインコミュニティです。Unityでゲームを開発・運用するにあたって必要なあらゆる知見を共有することを目的とします。
https://unity-game-dev-guild.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした