2017年10月13日

Firebase の対応(3) | Unity 側の解析 class 実装

Version 1.2.0 絶賛公開中!!
iOS デバイスの人は、上のアイコンからダウンロードしてみてね!!
基本無料。ゲーム内課金有り(無料で十分遊べます)

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

さて、前回の予告通り、Firebase Analytics の Unity 側での実装です。(ちょっと思ってたより時間かかりましたが...)
ここ のサンプルコードを見てたんですが、ひとまず、そのままコピーしてきてから考えますね。

で、コピーして後考えてみたんですが、特に MonoBehaviour を継承してないと駄目な感じもしないので、
何にも継承せずに行ってみたいと思います。

それと、Start() で初期化されますが、ユーザーIDを渡す様にしてます。
これ、iOS だと、ハードウェア固有の ID、AdID(アドID) が取れなくもないんですが、これを使うと面倒が増えるはずなので、

   System.Guid.NewGuid()  

を使ってユニークな ID を生成して保存することにしました。

あとは、色々定型の EventLog がサンプルに入ってたんですが、追加で イベント名を引数で渡す、ジェネリックな LogEvent メソッドを作りました。
Firebase 側でも勝手に入れてる気もするんですが、一応最後にイベントの発生した UTC 時間を毎回追加する様にしてます。

で、現在の形はこんな感じです。

public class YGFirebase
{
    DependencyStatus dependencyStatus DependencyStatus.UnavailableOther;

    //Whentheappstarts,checktomakesurethatwe have
    //therequireddependenciestouseFirebase,andifnot,
    //addthemifpossible.
    publicvoid Start(string _uid)
    {
        dependencyStatus=FirebaseApp.CheckDependencies();
        if(dependencyStatus !=DependencyStatus.Available)
        {
            FirebaseApp.FixDependenciesAsync().ContinueWith(task=>{
                dependencyStatus=FirebaseApp.CheckDependencies();
                if(dependencyStatus==DependencyStatus.Available)
                {
                    InitializeFirebase(_uid);
                }
                else
                {
                    Debug.LogError(
                        "CouldnotresolveallFirebasedependencies:"+dependencyStatus);
                }
            });
        }
        else{
            InitializeFirebase(_uid);
        }
    }

    //Handleinitializationofthenecessaryfirebasemodules:
    void InitializeFirebase(string _uid)
    {
        Debug.Log("Enablingdatacollection.");
        FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);

        stringsignup_method="";
#if UNITY_EDITOR
        signup_method="Unity_Editor";
#elif UNITY_IOS
        signup_method = "iOS-GameCenter";
#elif UNITY_ANDROID
        signup_method = "Google";
#endif

        Debug.Log("Setuserproperties.");

        //Settheuser'ssignupmethod.
        FirebaseAnalytics.SetUserProperty(FirebaseAnalytics.UserPropertySignUpMethod,signup_method);
        //SettheuserID.
        FirebaseAnalytics.SetUserId(_uid);
    }

    public void AnalyticsLogin()
    {
        //Loganeventwithnoparameters.
        Debug.Log("Loggingaloginevent.");
        FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLogin);
    }

    public void AnalyticsProgress(float _progress)
    {
        //Loganeventwithafloat.
        Debug.Log("Loggingaprogressevent.");
            FirebaseAnalytics.LogEvent("progress","percent",_progress);
    }

    public void AnalyticsScore(long _score)
    {
        //Loganeventwithanintparameter.
        Debug.Log("Loggingapost-scoreevent.");
        FirebaseAnalytics.LogEvent(
            FirebaseAnalytics.EventPostScore,
            FirebaseAnalytics.ParameterScore,
            _score);
    }

    public void LogEvent(string _eventparams Parameter [] _params)
    {
        Parameter [] new Parameter[_params.Length+1];

        for(inti=0;i<_params.Length;i++)
        {
            p[i]=_params[i];
        }

        p[_params.Lengthnew Parameter("utc_time", System.DateTime.UtcNow.ToString());

        FirebaseAnalytics.LogEvent(_event,p);
    }

}


こんな感じで実装してました。Unity 上では問題なさそうなんで、iOS ビルドを作って見ますね!

.......おや?エラーが!?
ErrorOnUnity.png

ファイルが足りないみたいですねぇ。

... で、このファイル、調べてみると、どうやら Firebase のコンソールをセットアップした時に貰えるファイルの様なので、
次はそっちに進んでいきますね!

では、また〜

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 09:08| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2017年10月04日

Firebase の対応(2) | Unity パッケージのインストール

Version 1.2.0 絶賛公開中!!
iOS デバイスの人は、上のアイコンからダウンロードしてみてね!!
基本無料。ゲーム内課金有り(無料で十分遊べます)

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

実は、先に Firebase のコンソールのセットアップから始めてたんですが(Firebase のガイドがその順番で書いてあったんですよね)、どうやら、Unity 側から始めた方がいい様な気もするので、こっちを先に進めますね。

ここのページの "Firebase Unity SDK" をクリックして、UnitySDK をダウンロード。

UnitySDKDownload.png

すると、こんな感じの unitypackage ファイルがダウンロードされてきます。

Download.png

今回必要なのは、FirebaseAnalytics.unitypackage ファイルなんで、このパッケージをガイドに従ってインポートして見ますね。

Assets > Import Package > Custom Package で package を選択すると...
package_import.png

いつもの様にアセット一覧が出てきますが、
Asset_list.png
不必要なアセットもよくわからないので、そのままインポート!
ちょっとして確認が出てきたけど、不必要になったファイルを消すかどうか聞いてきてるだけの様なので、Yesを選択。
Package_import_warning.png

特に問題なく、インポート完了したみたいです!

次は Unity 側での実装ですが、ちょっと長くなってきたんでまた次回に!!

待てない人は、ここに実装のサンプルコードがあるんで、これを参考に先に進んで見てくださいね。
そんなに難しくはなさそうかな?
では、また〜

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
posted by やまけん at 08:43| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする

2017年10月03日

Unity のアップデート(2) | そして 2017 へ

Version 1.2.0 絶賛公開中!!
iOS デバイスの人は、上のアイコンからダウンロードしてみてね!!
基本無料。ゲーム内課金有り(無料で十分遊べます)

Version 1.1.0 絶賛公開中!!
すくすく教育シリーズ第一弾

前回に続いて、Unity のバージョンアップデートです。
5.6.3f1 には順調にアップデートできたんで、ここから 2017.1f1 へアップデートしていきますね。

インストーラーのダウンロードはスクリーンショット取り忘れたんで、スキップしますね ♪
特に昔の書いたステップと、変わってないはずです。

で、インストールが終了して、起動します。

!!なんか、見慣れない画面が!
SerialInvalid.png

ライセンス持ってないんで、そりゃそうですね。
で、Re-Activate を選択して、持ってる Unity アカウントでサインインすると...

LicenseSelect.png

ここで、ライセンスの種類の選択ですね。
ここで、Unity Personal をチェックして、Next をクリック。
LicenseSelect2.png

ここも、スクリーンショット取り忘れちゃったんですが、次の画面で、パーソナルを使う条件を聞いてくるんで、
わたしの場合、アプリの 儲けが10万ドル以下、という条件にチェックして、次に進みました。

Survey0.png

で、軽くサーベイに答えて、終了!

Start.png

一応、プロジェクトのバックアップを取ってから、5.6.3 のプロジェクトを 2017.1 でオープンしてみると......

すげぇー!! まじすげぇぇぇ〜〜!! すげぇーぞ Unityぃぃぃぃぃ!!

なんか、ふつうに動いてる!

iOS ビルドを作っても正常!うぉぉぉぉぉぉぉーーーー!なんだコレ!


これ、ひょっとしたら、ふつうにスキップしても大丈夫だったかしら...?

では、また〜

初めてみました。よかったらクリックお願いしますね ♪
        にほんブログ村 ゲームブログ×PlayNCBlogへ 
ラベル:Unity2017 Unity5.6
posted by やまけん at 08:32| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする