【初心者向け】FirebaseとUnityの連携方法①【画像付き】

追記）2020.08.05 
　　　意外と好評であったので直ぐにでも続きを書きます。(就職活動で忙しくて出来ませんでした）

##はじめに
僕「バックグラウンドをFireBaseで簡単に任せることが出来ることを知ったからゲームでも使いたい！」
公式HPを見ながら作業環境を構築してると知識不足なのか慣れてないのかよく分からなくて初心者泣かせだった。

**そんな、同じような方に向けて分かりやすい連携方法を紹介できればなと思います。**

公式の連携方法ページ→https://firebase.google.com/docs/unity/setup?hl=ja
FireBaseの機能一覧でとても分かりやすかった→ https://qiita.com/hippoHippo/items/21cf7fb76bcf8591129f

##作業環境
・Windows
・Unity 2019.2.9f1
を使用して作業を行った結果です。

事前準備として、Unityプロジェクトは個々で作っといてください。省略します。

##作業一覧

###①FireBaseの作業ドキュメントを作成する。

※ドキュメント名に数字を入れた所DataBaseを使用する際に、このドキュメント名が使われるが数字が文字化け？なのか省略されてるのかして数字だけが抜けるので、数字入れるのは避けた方が良い？かもしれません!
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/c4840ff9-775c-d477-9313-b5da7764c774.png" width=30%>　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/a65f7491-d620-44bb-039e-a045d68ce0aa.png" width=30%>　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/194f55de-6ee8-bb2d-077b-d0850ec6217f.png" width=30%>

###②アプリ追加
１．作成したドキュメントのトップページに移行したら、アプリ追加からUnityアイコンをクリックする。
２．IOS又はAndroidを選択する。（今回はAndroid）
３．パッケージ名、アプリのニックネーム（省略可）を入力する。

**★このパッケージ名はUnityのAndroidのPackageNameをコピペする。**
※ここのパッケージ名の2つ目のドットの後は個々で作成した、Unityのプロジェクト名が入ります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/9bf5dcb8-a80c-6faf-41de-e36e817bdc85.png">


###③設定ファイルのダウンロード
Androidなら「google-services.json」をダウンロードする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/47d62b41-865e-8031-05b2-1daa9101393c.png">

###④FirebaseSDKをダウンロード

zipファイルを解凍。

###⑤Unityにインポートする

:point_up:ここからが公式HP見ながら行った結果、結構戸惑いました。

ここで２つのファイルがあることを確認できる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/b4b15a29-50f3-1721-bc66-1b417205e0e1.png" width=75%>

>Unity 2017.x 以降では、.NET 4.x フレームワークを使用できます。Unity プロジェクトで .NET 4.x を使用する場合は、dotnet4/FirebaseAnalytics.unitypackage をインポートします。

と、Unityのバージョン2017以降使っていればdonet4を使用することは分かりました。
上記のようにdotnet4/FirebaseAnalytics.unitypackageをインポートする。

公式HPの解説→https://firebase.google.com/docs/unity/setup?hl=ja#add_sdk



###⑥Google Play 開発者サービスの要件を確認する

正直ここはあまり理解していないが入力した
適当なスクリプトのStartまたはAwakeにHPにあるコードをコピペ

公式HPの解説→https://firebase.google.com/docs/unity/setup?hl=ja#confirm_google_play_version

###★⑦Unityで発生するエラーを解決する★　ここ重要
Unityに⑤で行った後にUnityにてエラーが起こるかと思います。
公式でも、そこに関して解説しているが画像付きで詳しく。

公式HPの解説→https://firebase.google.com/docs/unity/setup?hl=ja#known_issues

Pluginsフォルダが以下の通りになっていること確認する。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/2f513b52-e67a-39d0-edbc-bf734956b299.png" width=75%>

公式HPにもある通り、
doNet45フォルダの外にある２つのピースのやつが⑤で行ったときにdotnet3のものをインポートした際に使用する物である。

今回は、dotnet4をインポートしたためにdoNet45フォルダの中身の２つのピースを使用する。

まずは、使用しないdoNet45ファイル外の２つのピースを無効化または削除する。
↓無効化ならこの通りにする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/516b9be5-a53a-ad61-3717-7e6df3664200.png" width=50%>


そして使用する、doNet45ファイル内の２つのピースを有効化する。

↓以下のようにすべて使うの、「Any Platform」を選択　
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/d6632bf3-5f54-d386-8cde-0f6467a93656.png" width=50%>

ここでPlatform settingsを左からの一つずつ

**Editor settings**…UnityEditor上で動く
―――　CPU OSともにANYで良いと思います。

**PC,MAC & Linux standalone settings**…PC上でビルドしたものが動く
―――　Windowsの場合はこうする。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554471/3979cee1-1ea8-3804-affa-71c27c678029.png" width=50%>　
**※Macのチェックマーク等は外す**

**Android settings**…Android上でビルドしたものが動く
―――　ここでの変更箇所はなし。


変更したら、必ずApplyする。


##おわりに
ここまでで、環境構築はおしまいです。
次は、RealTimeDataBaseを使ってUnityと繋げてみたいと思います。

追記）2020.08.05 
　　　意外と好評であったので直ぐにでも続きを書きます。(就職活動で忙しくて出来ませんでした）

##紹介
**今まで学生で作ってきたポートフォリオを是非みてください。→https://keita0122neec.wixsite.com/portfolio**