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

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

Unity プロジェクトに Firebase を簡単に組み込めることを示すために、サンプルゲーム「MechaHamster」を作成しました。Firebase をゲームに追加してみたい方は、GitHub にあるスターター バージョンを使用してください。完成版を入手したい場合は、App Store または Google Play ストアで該当するバージョンを確認してください。

MechaHamster(GitHub)

MechaHamster(App Store)

MechaHamster(Play ストア)


Firebase でゲームをパワーアップする方法の詳細については、Firebase のゲームのページをご覧ください。

Unity プロジェクトに Firebase を追加済みの場合は、Firebase Unity SDK の最新バージョンを使用していることを確認します。

前提条件

  • Unity 2019.1 以降をインストールします。これより前のバージョンも互換性がある可能性がありますが、積極的にはサポートされません。Unity 2019.1 のサポートは非推奨とみなされており、次のメジャー リリース以後は積極的にサポートされなくなります。

  • (Apple プラットフォームのみ)以下をインストールします。

    • Xcode 13.3.1 以降
    • CocoaPods 1.12.0 以降
  • Unity プロジェクトが次の要件を満たしていることを確認します。

    • iOS の場合 - ターゲットが iOS 11 以降であること
    • tvOS の場合 - ターゲットが tvOS 12 以降であること
    • Android の場合 - ターゲットが API レベル 19(KitKat)以降であること
  • 実機を設定するか、エミュレータを使用してアプリを実行します。

    • Apple プラットフォームの場合 - 実機を設定するか、iOS または tvOS シミュレータを使用します。

    • Android の場合 - エミュレータでは Google Play のエミュレータ イメージを使用する必要があります。

Unity プロジェクトがまだない方で Firebase プロダクトを試してみたい場合は、クイックスタート サンプルをダウンロードしてください。

ステップ 1: Firebase プロジェクトを作成する

Unity プロジェクトに Firebase を追加する前に、Unity プロジェクトに接続するための Firebase プロジェクトを作成する必要があります。Firebase プロジェクトの詳細については、Firebase プロジェクトについて理解するをご覧ください。

ステップ 2: アプリを Firebase に登録する

Firebase プロジェクトに接続するアプリやゲームを登録できます。

  1. Firebase コンソールに移動します。

  2. プロジェクトの概要ページの中央で、Unity アイコン()をクリックして設定ワークフローを起動します。

    すでに Firebase プロジェクトにアプリを追加している場合は、[アプリを追加] をクリックするとプラットフォームのオプションが表示されます。

  3. 登録する Unity プロジェクトのビルド ターゲットを選択するか、両方のターゲットを同時に登録することもできます。

  4. Unity プロジェクトのプラットフォーム固有の ID を入力します。

    • iOS の場合 - Unity プロジェクトの iOS ID を [iOS バンドル ID] に入力します。

    • Android の場合 - Unity プロジェクトの Android ID を [Android パッケージ名] に入力します。「パッケージ名」と「アプリケーション ID」は、しばしば同じ意味で使用されます。

  5. (省略可)Unity プロジェクトのプラットフォーム固有のニックネームを入力します。
    これらのニックネームは内部用の便宜的な ID であり、Firebase コンソールにのみ表示されます。

  6. [アプリの登録] をクリックします。

ステップ 3: Firebase 構成ファイルを追加する

  1. Firebase コンソールの設定ワークフローでプラットフォーム固有の Firebase 構成ファイルを取得します。

    • iOS の場合 - [GoogleService-Info.plist をダウンロード] をクリックします。

    • Android の場合 - [google-services.json をダウンロード] をクリックします。

  2. Unity プロジェクトで [Project] ウィンドウを開き、構成ファイルを Assets フォルダに移動します。

  3. Firebase コンソールの設定ワークフローに戻り、[次へ] をクリックします。

ステップ 4: Firebase Unity SDK を追加する

  1. Firebase コンソールで [Firebase Unity SDK をダウンロード] をクリックし、適切な場所で SDK を解凍します。

    • Firebase Unity SDK はいつでも再ダウンロードできます。

    • Firebase Unity SDK はプラットフォーム固有ではありません。

  2. 開いている Unity プロジェクトで、[Assets] > [Import Package] > [Custom Package] を選択します。

  3. 解凍した SDK から、アプリで使用するサポートされている Firebase プロダクトを選択します。

    アナリティクスが有効な場合

    • Google アナリティクス用の Firebase パッケージを追加: FirebaseAnalytics.unitypackage
    • アプリで使用する Firebase プロダクトのパッケージを追加します。たとえば、Firebase Authentication と Firebase Realtime Database を使用する場合:
      FirebaseAuth.unitypackage および FirebaseDatabase.unitypackage を追加します。

    アナリティクスが無効な場合

    アプリで使用する Firebase プロダクトのパッケージを追加します。たとえば、Firebase Authentication と Firebase Realtime Database を使用する場合:
    FirebaseAuth.unitypackage および FirebaseDatabase.unitypackage を追加します。

  4. [Import Unity Package] ウィンドウで [Import] をクリックします。

  5. Firebase コンソールの設定ワークフローに戻り、[次へ] をクリックします。

ステップ 5: Google Play 開発者サービスの要件を確認する

Android 向け Firebase Unity SDK を使用するには、最新の Google Play 開発者サービスが必要です。

アプリケーションの先頭に次の using ステートメントと初期化コードを追加します。SDK で他のメソッドを呼び出す前に Google Play 開発者サービスを確認し、必要であれば、Firebase Unity SDK で必要とされるバージョンに更新します。

using Firebase.Extensions;
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

これで設定は完了です。Unity プロジェクトは Firebase を使用するように登録、構成されました。

設定で問題がある場合は、Unity のトラブルシューティングとよくある質問をご覧ください。

デスクトップ ワークフローを設定する(ベータ版

ゲームを作成する場合、Unity エディタやデスクトップ プラットフォームでまずゲームをテストしてから、開発の後の段階でモバイル デバイスにデプロイしてテストする方が簡単なことが良くあります。このワークフローをサポートするために、Windows、macOS、Linux、および Unity エディタ内で実行できる Firebase Unity SDK のサブセットが用意されています。

  1. モバイル プラットフォームの場合と同じ手順に沿って、デスクトップ プラットフォームの Unity プロジェクトを設定します(上記のアプリを Firebase プロジェクトに登録するから開始)。

  2. Unity IDE で Unity プロジェクトを実行するか、デスクトップ用に Unity プロジェクトをビルドします。

  3. (省略可)Unity プロジェクトを編集モードで実行します。

    Firebase Unity SDK は Unity の編集モードでも実行できるため、エディタのプラグインで使用できます。

    1. エディタで使用される FirebaseApp を作成する場合、デフォルトのインスタンスは使用しません。

    2. 代わりに FirebaseApp.Create() 呼び出しに対して一意の名前を指定します。

      Unity IDE で使用されるインスタンスと Unity プロジェクトで使用されるインスタンスの間のオプションの競合を避けるために、この操作は重要です。

サポートされている Firebase プロダクト

Unity Firebase ライブラリの詳細については、リファレンス ドキュメントをご覧ください。

モバイルで利用可能な Firebase ライブラリ

Apple と Android の Firebase Unity SDK では、次の Firebase プロダクトがサポートされています。

Firebase プロダクト Unity パッケージ
AdMob AdMob Unity プラグインで個別に配信
アナリティクス FirebaseAnalytics.unitypackage
App Check FirebaseAppCheck.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(推奨)FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(推奨)FirebaseAnalytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
(推奨)FirebaseAnalytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
(推奨)FirebaseAnalytics.unitypackage

デスクトップで利用可能な Firebase ライブラリ

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

Firebase プロダクト(デスクトップ) Unity パッケージ
App Check FirebaseAppCheck.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage

Firebase では残りのデスクトップ ライブラリはスタブ(非機能的)実装であり、Windows、macOS、Linux 向けのビルドを便利にするために提供されています。このため、デスクトップを対象としてコードを条件付きでコンパイルする必要はありません。

次のステップ