UnityでPlayFabを使い始める方法(インストール〜匿名ログイン)


Unite2019でPlayFabの講演を聞き、興味を持ったのでMicrosoftブースで色々伺ってきました。

講演資料はこちら -> https://www.slideshare.net/UnityTechnologiesJapan002/unite-tokyo-2019unity-playfab-liveops

自分が作ろうとしているスマホゲームで活用できそうだったので、とりあえず触ってみようと思います。

環境

  • 書いた日 2019/09/29
  • Unity 2019.1.5f1
  • macOS Mojave 10.14.6
  • PlayFab SDK 2.74.190916

PlayFabに登録

まずはアカウント登録が必要なのでサインアップします。

こちらから登録してログイン。

PlayFabはAzureのいちサービスっぽいけれど、Azureポータル経由せずに利用できるので楽ですね。

PlayFabの価格

  • Essentials(無料プラン)
  • Indie Studio($99/月)
  • Professional($299/月〜)
  • Enterprise(お問い合わせ)

こんな分類みたいです。
私は個人開発なので無料〜インディープランでうまくやりくりする感じになりそうです。
無料でも結構な機能が使えるっぽいですし、インディープランも1000MAUまでは無料らしいので活用していきましょう。

料金について詳しくはこちら https://playfab.com/pricing/

スタジオとタイトルを作る

PlayFabではいきなりゲームを登録する訳ではなく、スタジオとタイトル(ゲーム)を順番に登録していきます。

私は個人開発なので、 naichilab というスタジオ(赤枠)と playfab-sample-game というタイトル(緑枠)を登録しました。

スタジオ単位でメンバーや管理者を設定したり、前述のプラン契約ができるようです。

当然ですが、スタジオ内に複数タイトルを登録することもできます。

タイトルのダッシュボードへ

タイトルをクリックするとダッシュボードに移動します。

まだ空っぽですね。

SDKのダウンロード

ダッシュボード右上のヘルプからクイックスタートへ

SDKのダウンロードリンクがあるのでUnity用をダウンロードします。

Unity3Dっていつの呼び方・・・

エディター拡張機能をダウンロードしておきます。

PlayFabEditorExtensions.unitypackage が手に入りました。

Unityへインポート

空のUnityプロジェクトを作成し、先ほどのunitypackageをインポート

目立つウィンドウが出てくる。

めっちゃ分かりづらいけどこれは登録画面で、すでにブラウザで登録済みなのでログイン画面へ切り替える。

ID/PASSを入力してログイン

UnityにPlayFabSDKをインポート

Install PlayFab SDK

押しても反応なし・・・

何度か押してたらPlayFabSdkというフォルダが出来ていました。

Refresh 押しても無反応。分かりづらい。

Unityを開き直すことでやっと認識されました。

スタジオとタイトルを選択

Settingsタブからブラウザで作成したスタジオとタイトルを選択しておきます。

匿名ログイン

PlayFabには標準でLoginAPIがたくさん用意されてるようです。

今回はただの練習なので LoginWithCustomID でログインしてみます。(IDも固定値)

PlayFabLogin.cs
using PlayFab;
using PlayFab.ClientModels;
using UnityEngine;

public class PlayFabLogin : MonoBehaviour
{
    public void Start()
    {
        var request = new LoginWithCustomIDRequest {CustomId = "MyCustomId", CreateAccount = true};
        PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
    }

    private void OnLoginSuccess(LoginResult result)
    {
        Debug.Log("Congratulations, you made your first successful API call!");
    }

    private void OnLoginFailure(PlayFabError error)
    {
        Debug.LogWarning("Something went wrong with your first API call.  :(");
        Debug.LogError("Here's some debug information:");
        Debug.LogError(error.GenerateErrorReport());
    }
}

これをMainCameraとか適当なGameObjectにはっつけて実行。

Congratulations, you made your first successful API call!

とログが出ました。

管理画面でプレイヤーを見ると1名増えています。

さらに詳細を見るとスクリプトで設定した MyCustomId というカスタムIDとリンクしていることも確認できました。

TwitterやFacebooko連携とかを行うとさらにここに追加されるのでしょう。きっと。

まとめ

SDKインストールしてUnityから匿名ログインするところまで〜だととても簡単でした。

少しずつ他の機能も試していきます。

その他のドキュメント

この辺りをみていけば分かりそうな感じですね。