Unity プロジェクトに Firebase を追加するplat_iosplat_androidplat_unity

概要

Firebase Unity SDK を使用して Unity ゲームをパワーアップさせることができます。

  • アナリティクスを使用すると、プレーヤーがゲームをどのように体験しているか、ゲームのプレイ時間、レベルのクリアにかかった時間、購入したアプリ内コンテンツなどがわかります。
  • Dynamic Links を使用すると、カスタムレベル、ゲーム内アイテム、ゲームへの招待状などのコンテンツをプレーヤー間で共有できるようになります。

  • Cloud Messaging を使用すると、ゲームの既存のコンテンツをクリアしたプレーヤーに対して、新しいコンテンツをリリースするときにプッシュ通知を送信することができます。

  • Remote Config を使用すると、敵の密度やパワーアップの頻度など、デベロッパーが制御したいゲーム内設定を迅速に調整することができます。

  • Realtime Database を使用すると、カスタムマップなど、ユーザーが生成したコンテンツをクラウドに安全に保存できます。

  • Cloud Storage を使用すると、安全なサービスを使用して、プレーヤーにダウンロード可能なコンテンツを配信できます。

SDK をダウンロード


Firebase のゲームのページで、ゲームのパワーアップの方法をご覧ください。

機能

iOS および Android の Firebase Unity SDK では次の機能がサポートされています。

機能 Unity パッケージ
AdMob AdMob Unity プラグインで個別に配信
アナリティクス FirebaseAnalytics.unitypackage
Authentication FirebaseAuth.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
Invites FirebaseInvites.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
Cloud Storage FirebaseStorage.unitypackage

Firebase Unity SDK には機能のサブセットに対するデスクトップ ワークフローのサポートが含まれているため、Firebase の特定の部分を Unity エディタや、Windows、OS X、Linux のスタンドアロン デスクトップ ビルドで使用できます。(ベータ版

サンプルゲーム: MechaHamster

Unity プロジェクトに Firebase を簡単に組み込めることを示すために、サンプルゲーム「MechaHamster」を作成しました。このゲームは、GithubApp StoreGoogle Play ストアからダウンロードできます(次のリンクを参照)。

MechaHamster GitHub MechaHamster App Store MechaHamster Play ストア

iOS 用の設定

前提条件

  • Unity 5.3 以降
  • Xcode 8.0 以降
  • Cloud Messaging の場合:
    • 物理 iOS 端末
    • プッシュ通知を有効にした APNs 証明書
  • CocoaPods 1.2.0 以降
  • Unity プロジェクトのバンドル ID

Unity プロジェクトをまだ用意していない場合、Firebase 機能を試すだけであれば、クイックスタート サンプルをダウンロードしてご利用いただけます。クイックスタートを使用する場合は、バンドル ID が次のステップで必要になるため、プロジェクト設定からバンドル ID を忘れずに取得してください。

アプリに Firebase を追加する

Firebase をアプリに追加するには、Firebase プロジェクトと、アプリ用の Firebase 構成ファイルが必要です。

  1. Firebase プロジェクトをまだ用意していない場合は、Firebase コンソールで Firebase プロジェクトを作成します。モバイルアプリと関連付けられた既存の Google プロジェクトがある場合は、[Google プロジェクトをインポート] をクリックします。それ以外の場合は、[新規プロジェクトを作成] をクリックします。
  2. [iOS アプリに Firebase を追加] をクリックして設定手順に沿って操作します。既存の Google プロジェクトをインポートする場合、このステップは自動的に実行されることがあります。その場合は、構成ファイルをダウンロードするだけでかまいません。
  3. 求められたら、アプリのバンドル ID を入力してください(必ずアプリで使用しているバンドル ID を入力してください)。バンドル ID を設定できるのは、アプリを Firebase プロジェクトに追加するときだけです。
  4. GoogleService-Info.plist ファイルをダウンロードします。このファイルはいつでももう一度ダウンロードできます。

アプリに SDK を追加する

  1. Unity プロジェクトをまだ用意していない場合は、作成します。また、クイックスタート サンプルのうちの 1 つを使用して、Firebase の機能を試すことができます。
  2. Firebase Unity SDK をダウンロードし、適切な場所で解凍します。
  3. Unity プロジェクトを Unity エディタで開きます。

    • [File > Open Project] メニュー項目を選択します。
    • [Open] をクリックします。
    • ファイル ダイアログ内でアプリ ディレクトリに移動し、[Open] をクリックします。
  4. Firebase 機能のプラグイン(Firebase Analytics など)をインポートします。

    • Assets > Import Package > Custom Package メニュー項目を選択します。
    • 先にダウンロードした Firebase Unity SDK から FirebaseAnalytics.unitypackage をインポートします。
    • Import Unity Package ウィンドウが表示されたら [Import] をクリックします。
  5. プロジェクトに GoogleService-Info.plist ファイルを追加します。

    • [Project] ウィンドウの [Assets] フォルダに移動します。
    • Firebase コンソールからダウンロードした GoogleService-Info.plist を、フォルダにドラッグします。
      • 注: GoogleService-Info.plist は、Assets フォルダの下の任意の場所に配置できます。
  6. iOS 用にビルドします。

    • [File > Build Settings] メニュー項目を選択します。
    • [Platform] リストから [iOS] を選択します。
    • [Switch Platform] をクリックし、ターゲット プラットフォームとして [iOS] を選択します。
    • Unity ステータスバーの右下隅にあるスピナー(コンパイル中)アイコンが停止するまで待ちます。
    • [Build and Run] をクリックします。

Android 用の設定

  • Unity 5.3 以降
  • Android 4.0(Ice Cream Sandwich)以降が搭載された端末
  • Unity プロジェクトのバンドル ID

Unity プロジェクトをまだ用意していない場合、Firebase 機能を試すだけであれば、クイックスタート サンプルをダウンロードしてご利用いただけます。クイックスタートを使用する場合は、バンドル ID が次のステップで必要になるため、プロジェクト設定からバンドル ID を忘れずに取得してください。

アプリに Firebase を追加する

アプリに Firebase を追加するには、Firebase プロジェクトと、アプリ用の Firebase 設定ファイルが必要です。

  1. Firebase プロジェクトをまだ用意していない場合は、Firebase コンソールで Firebase プロジェクトを作成します。モバイルアプリと関連付けられた既存の Google プロジェクトがある場合は、[Google プロジェクトをインポート] をクリックします。それ以外の場合は、[新規プロジェクトを作成] をクリックします。
  2. [Android アプリに Firebase を追加] をクリックし、設定手順に沿って操作します。既存の Google プロジェクトをインポートする場合、このステップは自動的に実行されることがあります。その場合は、構成ファイルをダウンロードするだけでかまいません。
  3. 求められたら、アプリのパッケージ名を入力します。必ずアプリで使用しているパッケージ名を入力してください。パッケージ名を設定できるのは、アプリを Firebase プロジェクトに追加するときだけです。
  4. google-services.json ファイルをダウンロードします。このファイルはいつでももう一度ダウンロードできます。

アプリに SDK を追加する

  1. Unity プロジェクトをまだ用意していない場合は、作成します。また、クイックスタート サンプルのうちの 1 つを使用して、Firebase の機能を試すことができます。
  2. Firebase Unity SDK をダウンロードし、適切な場所で解凍します。
  3. Unity プロジェクトを Unity エディタで開きます。

    • [File > Open Project] メニュー項目を選択します。
    • [Open] をクリックします。
    • ファイル ダイアログ内でアプリ ディレクトリに移動し、[Open] をクリックします。
  4. Firebase 機能のプラグインをインポートします(たとえば、Firebase Analytics)。

    • Assets > Import Package > Custom Package メニュー項目を選択します。
    • 先にダウンロードした Firebase Unity SDK から FirebaseAnalytics.unitypackage をインポートします。
    • Import Unity Package ウィンドウが表示されたら [Import] をクリックします。
  5. google-services.json ファイルをプロジェクトに追加します。

    • [Project] ウィンドウの [Assets] フォルダに移動します。
    • Firebase コンソールからダウンロードした google-services.json を、このフォルダにドラッグします。
      • 注: google-services.json は、Assets フォルダの下の任意の場所に配置できます。
  6. Android 用にビルドします。

    • [File > Build Settings] メニュー項目を選択します。
    • [Platform] リストから [Android] を選択します。
    • [Switch Platform] をクリックし、ターゲット プラットフォームとして [Android] を選択します。
    • Unity ステータスバーの右下隅にあるスピナー(コンパイル中)アイコンが停止するまで待ちます。
    • [Build and Run] をクリックします。

デスクトップ ワークフローの実装(ベータ版機能

アプリを作成する場合、通常は、Unity エディタやデスクトップ プラットフォームでまずアプリをテストしてから、開発中のモバイル端末にデプロイしてテストする方が簡単になります。このワークフローをサポートするために、Windows、OS X、Linux、および Unity エディタ内で実行できる Firebase Unity SDK のサブセットが用意されています。

デスクトップ機能 ライブラリ
Authentication FirebaseAuth.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
Cloud Storage FirebaseStorage.unitypackage

残りのデスクトップ ライブラリはスタブ(非機能的)実装であり、Windows、OS X、Linux 向けのビルドを便利にするために提供されています。そのため、デスクトップが対象である場合でも、条件に応じてコードをコンパイルする必要はありません。

デスクトップ プロジェクトの設定

デスクトップ ワークフローのサポートを使用するには、Firebase コンソールで Android または iOS プロジェクトを設定する必要があります。

Android 用の設定または iOS 用の設定の手順に沿って、アプリで Firebase Unity SDK を設定します。

アプリを Unity エディタで実行する、またはデスクトップ用にビルドするときに、Firebase はプロジェクトで GoogleService-Info.plist または google-services.json ファイルを自動的に使用してアプリを設定します。

編集モードでの実行

Firebase Unity SDKは Unity の編集モードでも実行できるため、エディタのプラグインで使用できます。エディタで使用される FirebaseApp を作成する場合は、デフォルトのインスタンスを使用せずに、代わりに FirebaseApp.Create() 呼び出しに対して一意の名前を指定します。Unity エディタで使用されるインスタンスとアプリケーションで使用されるインスタンスの間のオプションの競合を避けるために、この操作は重要です。

Firebase Unity SDK デスクトップ サポートに関する注意事項

Firebase Unity SDK デスクトップ サポートはベータ版の機能です。公開対象のコードではなく、アプリケーション開発中にのみワークフローで使用するためのものです。

既知の問題

Unity 2017.x と .NET 4.x を使用するプロジェクトにおけるプラグインのインストール

Unity 2017 以降では、実験的ビルド オプションとして .NET 4.x がサポートされています。Firebase のプラグインでは、Parse SDK のコンポーネントを使用して .NET 4.x のクラスを提供していますが、その中の一部のクラスはそれ以前のバージョンの .NET のものです。そのため、.NET 4.x 対応プロジェクトに Firebase をインポートすると、Parse SDK によって実装された .NET 4.x フレームワークの一部の型でコンパイル エラーが発生します。

コンパイル エラーを解決するには:

  1. すべてのプラットフォームで次の DLL を削除または無効にします。
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. すべてのプラットフォームで次の DLL を有効にします。
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

別の Firebase プラグインをインポートする場合:

  • メニュー項目 Assets > Play Services Resolver > Version Handler > Update を選択して、.NET 4.x DLL を再度有効にし、.NET 3.x DLL を無効にします。

.NET 4.x プロジェクトでの Unity 2017.1 IL2CPP のコンパイル

Unity 2017 以降では、実験的ビルド オプションとして .NET 4.x がサポートされています。Firebase のプラグインでは、Parse SDK のコンポーネントを使用して .NET 4.x のクラスを提供していますが、その中の一部のクラスはそれ以前のバージョンの .NET のものです。型転送の DLL が用意されていますが、これらの DLL は Parse 型(つまり System.Threading.Tasks.Task の Parse 実装)を .NET Framework に転送します。残念ながら、Unity 2017.1.x に付属する IL2CPP(C# を C++ に変換するトランスパイラ)は型転送の DLL を適切に処理しないため、以下のようなビルドエラーが発生します。

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to resolve System.Threading.Tasks.TaskCompletionSource1`

現時点で、Unity 2017.1 における .NET 4.x IL2CPP のビルドエラーを回避できる方法はありません。ユーザーは、2017.2 以降にアップグレードして、IL2CPP でコンパイルされたプロジェクトで .NET 4.x を使用する必要があります。

Unity 2017.2 のネットワーキング

Realtime Database と Storage では .NET ネットワーキング スタックを使用して TLS ネットワーク接続を作成します。.NET 4.6 を使用している場合、Unity 2017.2 の TLS の機能が正しく動作せず、Realtime Database プラグインと Storage プラグインに問題が発生します。この問題の回避策はありません。Unity の別のバージョン(2017.1、2017.3 など)を使用する必要があります。

サポート

Firebase サポート

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。