Unity GooglePlayGameServicesとGameCenterを利用する

概要

GooglePlayGameServicesとGamecenterを利用して
ランキングボードとアチーブメントを表示する。
f:id:yasuaki-ohama:20151219115036p:plain:w300
f:id:yasuaki-ohama:20151219115028p:plain:w300

play-games-plugin-for-unityをダウンロード

GitHub - playgameservices/play-games-plugin-for-unity: Google Play Games plugin for Unity
右側にあるDownload ZIPをクリックして、ダウンロード。
f:id:yasuaki-ohama:20151219095117p:plain:w500
今回の記事の時の最終コミット
f:id:yasuaki-ohama:20151219095630p:plain:w500

プロジェクトにプラグインを入れる

play-games-plugin-for-unity-master->current-build->GooglePlayGamesPlugin-0.9.27a
f:id:yasuaki-ohama:20151219100024p:plain:w500

f:id:yasuaki-ohama:20151219100649p:plain:w400
f:id:yasuaki-ohama:20151219101002p:plain:w400

ストアからIDを習得する

ゲームセンターアイコン->実績->リソースを取得
f:id:yasuaki-ohama:20151219115716p:plain:w400
f:id:yasuaki-ohama:20151219115721p:plain:w400

アチーブメンント、ランキングボードの公開設定

公開してなくてもテストアカウントでみること見ることができます。
f:id:yasuaki-ohama:20151219110717p:plain:w400
公開するとりせっとできないので注意
f:id:yasuaki-ohama:20151219114909p:plain:w400

プロジェクトでID設定

Window > Google Play Games > Setup > Android Setup...
f:id:yasuaki-ohama:20151219101443p:plain
f:id:yasuaki-ohama:20151219115730p:plain

説明
directory to save constants プロジェクトのどこにC#のIDスクリオプトを置くのか
Constants class name 作成されるIDリストスクリプトC#のIDスクリオプト名
Resources Definition さっきストアから取ってきたもの
Web client ID ゲームセンターアイコン->リンク済みアプリ->OAuth2 クライアント ID

f:id:yasuaki-ohama:20151219103306p:plain:w400

起動確認

以下をインポート
play-games-plugin-for-unity-master->samples->Minimal->Minimal.unitypackage
f:id:yasuaki-ohama:20151219104514p:plain:w300
GooglePlayGamesPlatformSample.csを作成し、MainSceneのカメラにアッタッチする
gist.github.com
build
f:id:yasuaki-ohama:20151219104521p:plain:w300

アチーブメントとリーダーボードの表示、送信

f:id:yasuaki-ohama:20151219112000p:plain:w300
f:id:yasuaki-ohama:20151219115031p:plain:w300
f:id:yasuaki-ohama:20151219112008p:plain:w300
f:id:yasuaki-ohama:20151219115025p:plain:w300
f:id:yasuaki-ohama:20151219115028p:plain:w300
f:id:yasuaki-ohama:20151219115033p:plain:w300
f:id:yasuaki-ohama:20151219115036p:plain:w300

IOS

google play serviceを利用しないのでここにiOSの設定に以下を追加
(これを追加しないとXcodeでframeworkないとエラーでる)

NO_GPGS

f:id:yasuaki-ohama:20151219103312p:plain
itunesconnectの「達成項目ID」をgoogleと同じものを入れる

Unity5のバグ

アチーブメントが習得できないバグがあるので以下のURLから
GCNative.h, GCNative.m, GCNative_Bridge.h, GCNative_Bridge.m
を作成
[iOS]Unity5でGame CenterにAchievementを送れないバグに対処する - Qiita

アチーブメンント、ランキングボードの公開設定

GameCenterをサンドボックスにしておく事
f:id:yasuaki-ohama:20151219134257p:plain:w300
f:id:yasuaki-ohama:20151219134251p:plain:w300
f:id:yasuaki-ohama:20151219134248p:plain:w300