【Unity】Firebaseを入れて分析してみよう!その2インストール編

Unity
スポンサーリンク

Firebase Analyticsをインストール

まずダウンロードしたzipファイルを開くと「.NET 3か .NET 4」のフレームワークなどの環境でインストールするフォルダ(dotnet3, dotnet4)が分かれています。

Unity5以前を利用している場合は「dotnet3」フォルダを利用してください。
それ以降のバージョンは基本「dotnet4」フォルダでOKです。

 

Analyticsのみをインストール

では早速、分析に必要な「Analytics」をインストールしてみましょう。
「FirebaseAnalytics.unitypackage」ファイルがUnityに取り込むプラグインです。

わかりました!
あれ?でも他にもたくさん.unitypackageファイルがありますね…

はい、同じフォルダ内に他にもたくさん.unitypackageファイルが存在しています。
これらはFirebaseのAnalytics以外の様々なプラグインも含まれているためです。

なので今回インストールするのは「Analytics」1つで大丈夫ですよ。

 

.unitypackageのインストール方法

インストール方法についてはこちらの記事で紹介しておりますので
こちらを参考に「FirebaseAnalytics.unitypackage」を取り込んでみてください。

ビルドが無事通れば成功です。

 

エラーが出た場合

他のプラグインなどと入れているとエラーが出たりします。
もし出た場合は下記なども試してみてください。

 

Parse/DLLを削除

こちらを削除して

Parse/Plugins/Unity.Compat.dll
Parse/Plugins/Unity.Tasks.dll

こちらの設定で全てのプラットフォームを有効にする。

Parse/Plugins/dotNet45/Unity.Compat.dll
Parse/Plugins/dotNet45/Unity.Tasks.dll

 

Play Services Resolverで更新する

エディタのメニューで「Assets→PlayServicesResolver→VersionHandler→Update」を実行するとプロジェクト用に正しいデータに更新されます。

 

System.BadImageFormatException が出る場合 2020/04/21 追記

下記のようなエラーが出た時に

System.BadImageFormatException: Could not resolve field token 0x0400003b, due to: Could not load type of field ‘Firebase.Editor.Measurement:analytics’ (4) due to: Could not resolve type with token 01000005 (from typeref, class/assembly Google.EditorMeasurement ~

Admobなど別のGoogleのプラグインを入れているケースでPlayServicesResolverフォルダがある場合は事前に削除しておかないといけないようです。

そのままいれてしまうと「Unity Package Manager Resolver」ウィンドウが呼び出されず、必要な処理が抜けたことによってエラーが出て続けてしまいます!

 

この辺りはネットにも情報がなくため手探りで検証に数日を要してしまいましたが、無事他のプロジェクトにも導入することができました。

※このケースでは上記の「Assets→Play Services Resolver」のUpdateがありませんので代わりに「Assets→External Dependency Manager」からUpdateなど呼び出してください。

 

最新版に更新

最新に更新するには起動時に下記のように最新版に更新する処理を呼び出します。

※例では専用クラスを用意しましたがアプリ起動時に呼ぶものであれば何でもOKです

    
public class StartUpObject : MonoBehaviour
{
    void Awake()
    {
        Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(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.
            }
        });
    }
}

 

ちなみに下記のカッコの中まで来ると正常に動作出来る状態となります。
ネットワークを使うものなので少し完了まで時間がかかることもあるのでその点留意しておきましょう。

if (dependencyStatus == Firebase.DependencyStatus.Available) {
// ここまでくれば使える
}

 

 

次回

今回はウェブ上のダッシュボードでの設定とUnityへの組み込みを対応してみました。

次回はついにプログラムの呼び出しなどをしていきたいと思います。
ではここまでお読みいただきありがとうございました。

 

2020/05/09 実装編を追記しました!

続きはこちら。

コメント

スポンサーリンク
タイトルとURLをコピーしました