嬉しいのは、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にチェックを入れます。手動でGame Centerへログイン処理
UE4.9以降からは自動でGame Centerにログインしなくなったので、タイトル画面などのEvent BeginPlayで、ログイン処理を行います。詳しくは以下のページにアナウンスされています。ログインロジックは、おおよそ以下のようになります。Show External Login UIノードを実行すると、Game Centerにログインします。なお、Show External Login UIノードにPlayer Controllerを渡すのを忘れないで下さい。僕はこれを忘れていてログインできなくて、半日悩みました。
Leaderboardボタンが押された時の処理
BeginPlayの処理と同様に、ログインされていなければまず先にログイン処理を行います。既にログイン済み、もしくは、ログイン処理が成功したら、Show Platform Specific Leaderboard Screenノードを実行します。Category NameはiTunes Connectで登録したLeaderboard IDを入力します。
Leaderboardへスコア送信
ゲーム終了後、スコアをGame Centerへ送信します。スコア送信にはWrite Leaderboard Integerノードを使用します。floatの送信ノードがないようなのですが、こちらは未対応なのでしょうか? 今回はIntegerで間に合うので、問題はありませんでしたが。
Stat NameはiTunes Connectで登録したLeaderboard IDを入力します。
Stat Valueはスコアを入力します。
0 件のコメント:
コメントを投稿