くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

UnityxAndoridでGooglePlayGameServiceを使ったログイン処理

ひさびさにUnityでAndroidアプリを作ってみました!
拙作、初の横スクロールアクション「あざらしロジック」!(GooglePlay)

f:id:wannabe-jellyfish:20170128222935p:plain

www.youtube.com

その際にいろいろやったので、忘れないための備忘録φ(..)メモメモ
「あざらしロジック」で、Google Play Game Serviceを使ったので、その時の話

Google Play Game Service(GPGS)とは

Google Play ゲーム サービスの機能 - Google Play デベロッパー ヘルプ」によると、以下の感じ。

Google Play ゲーム サービスの機能

Google Play ゲーム サービスを使うと、楽しいソーシャル機能やマルチプレーヤー機能をゲームに追加することができます。

Google Play ゲーム サービスの実装に関する基本事項の解説やドキュメントをご覧いただくには、下記の機能を選択してください。

ランキング(リーダーボード)やGoogleアカウントでのSignin(ログイン)など、ゲームで使う機能を提供しているサービス。
今回は、Signin(ログイン)の部分だけ、利用した。
(リーダーボードも使おうとしたけど、1アカウントにつき1つのスコアしか表示されないので、mBaaSを使うことに)

Google Play Developer Consoleでの準備

ほぼ、この記事のとおりやっただけ。わかりやすくまとまってて、助かりました!

qiita.com

開発中の場合、証明書のフィンガープリントが必要

開発中のアプリで利用する場合は、証明書のフィンガープリント(SHA1)を自分で取得する必要があるので注意。
デバッグ用のkeystoreはC:/Users/<アカウント名>/.android/debug.keystoreにあるので、
「keytool.exe」を使って確認。

keytool -list -keystore C:/Users/<アカウント名>/.android/debug.keystore -v -storepass android

Unityプラグインのインストール/セットアップ

UnityからGPGSを利用するためのプラグインGitHubに公開されているので、そこから入手

GitHub - playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity

zipをダウンロードして、

f:id:wannabe-jellyfish:20170129122106p:plain

zipを展開すると、current-buildにある「GooglePlayGamesPlugin-x.x.x.unitypackage」をインポート。

※ AdMobやAppLovinなどを使っている場合、AndroidMainfestやsupport-lib.jarが競合しないように!!
※ 競合すると、メニューが表示されず、セットアップに進めない。。。

f:id:wannabe-jellyfish:20170129122343p:plain

Unityプラグインのセットアップ

メニューの「Window > Google Play Games > Setup > Android setup…」から設定。

f:id:wannabe-jellyfish:20170129123125p:plain

Developer Consoleで追加した、実績/リーダボードの画面からリソースを取得できるので、
それを貼り付けて、「Setup」ボタンを押せば、OK

GPGSを使う(Signin/Signout)

使い方は以下の感じ。

using UnityEngine;
using UnityEngine.UI;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using System;

public class GPGSManager : MonoBehaviour {

    public Text textBtnSign;

    // Use this for initialization
    void Start() {
        if(!IsLogined()) {
            // クライアントの設定
            PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().Build();

            PlayGamesPlatform.InitializeInstance(config);
            PlayGamesPlatform.DebugLogEnabled = true;
            PlayGamesPlatform.Activate();
        }
    }

    // Sign-in
    public void SignIn(Action<bool> callback) {
        Social.localUser.Authenticate((bool success) => {
            callback(success);
        });
    }

    // Sign-out
    public void SingOut() {
        PlayGamesPlatform.Instance.SignOut();
    }

    // Login状態の確認
    public bool IsLogined() {
        return Social.localUser.authenticated;
    }
}

他の使い方も、GitHubのREADME.mdに詳しく書いてあるので、
迷うことは少ないかも。(英語だけど、英語だけど)

以上!!

参考にしたサイト様