2015年12月16日水曜日

UE4: Game Centerにログインしてハイスコアを登録する

ここ最近、僕自身がiOSゲームをリリースしていなかった為、iOSのGame Centerに関しての知識がだいぶ古くなっていました。Game CenterのSandbox環境はいろいろ変更されていたようです。
嬉しいのは、iOS9からSandbox用のGame Centerアカウントを作成する必要はなくなり、Live環境のアカウントを使用できるようになった事です。その辺りに関する情報は以下のページで得ました。

ただ、iOS8での開発のためか、iTunes ConnectでSandboxユーザーアカウントの作成はまだ可能になっていました。この辺りで、ちょっと混乱しました。

Little UmbbyでもハイスコアをGame CenterのLeaderboardに送信することができるようになったので、そのやり方をまとめておきます。
なお、iTunes ConnectでのLeaderboard登録方法は、既に沢山の情報がありますので端折りました。


開発環境

  • Windows版 UE4.10.1
  • iOS 9.2
  • Blueprintプロジェクト

プロジェクト設定でGame CenterをONにする

Project Settings -> Platforms -> iOS -> OnlineのEnable Game Center Supportにチェックを入れます。
EnableGameCenter.jpg

手動でGame Centerへログイン処理

UE4.9以降からは自動でGame Centerにログインしなくなったので、タイトル画面などのEvent BeginPlayで、ログイン処理を行います。詳しくは以下のページにアナウンスされています。

ログインロジックは、おおよそ以下のようになります。Show External Login UIノードを実行すると、Game Centerにログインします。なお、Show External Login UIノードにPlayer Controllerを渡すのを忘れないで下さい。僕はこれを忘れていてログインできなくて、半日悩みました。
LoginGameCenter.jpg

Leaderboardボタンが押された時の処理

BeginPlayの処理と同様に、ログインされていなければまず先にログイン処理を行います。既にログイン済み、もしくは、ログイン処理が成功したら、Show Platform Specific Leaderboard Screenノードを実行します。

Category NameはiTunes Connectで登録したLeaderboard IDを入力します。
ShowLeaderboardScreen.jpg

Leaderboardへスコア送信

ゲーム終了後、スコアをGame Centerへ送信します。
スコア送信にはWrite Leaderboard Integerノードを使用します。floatの送信ノードがないようなのですが、こちらは未対応なのでしょうか? 今回はIntegerで間に合うので、問題はありませんでしたが。
Stat NameはiTunes Connectで登録したLeaderboard IDを入力します。
Stat Valueはスコアを入力します。
WriteLeaderboard.jpg

コードプロジェクトの場合の注意点

今回はBlueprintプロジェクトなので必要ありませんでしたが、コードプロジェクトの場合は、他に必要な設定があるようです。以下に解説されていました。


関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...