Users with iOS version 10 and above will no longer have access to the iOS Game Center Application. All of the functionality of the Game Center app has been moved into the iOS operating system (OS). Because of this, you will need to create a UI that will display all of the items that used to be displayed by Game Center.
Configuration
Please see Leaderboards, Achievements and Challenges for information on setting up the iOS Game Center for your application.
For your Unreal Project:
In the Edit menu in Unreal Editor, select Project Settings to view the configuration options for your project.
On the left, Select the Platforms: iOS tab.
Set Enable Game Center Support to True.
If you are planning to release your application on both Android and iOS devices, please see
実績をキャッシュする
Cache Achievements は、実績のリストと現在のプレイヤーが前述の実績に対して有している値をプラットフォームのゲーム サービスから要求します。ノードが正常に値を返せば Get Cached Achievement Value を使用することができます。
これは 潜在的な ノードなので、実行出力ピンが多いことに注目してください。一番上は「通過」ですが、他の実行出力ピンと何ら変わりはありません。その下の 2 つのピン (On Success と On Failure) は、オンライン サービスが値を返す (または返すことに失敗する) と実行されます。実行して成功が返されると
ブループリント内:
Unreal Match 3 のサンプル ゲームの Global Game Instance を例に取りましょう。デバイスのゲーム プラットフォーム (Game Center、Google Play) にログイン後、このポイントで Cache Achievements ノードを実行して (一番上の出力実行ピンから何も実行されないようにして) 実際に実行を停止し、すべての実績を返すサービス時間を与えます:
実績の値の読み取り
Get Cached Achievement Progress は、指定された Player Controller に対して所定の Achievement ID の Progress を返し、Cache Achievements ノードが既に実行されて正常に返された場合のみ機能します。
iOS Game Center の場合、この値は実際は integar 型で格納されるので、小数点以下を切り捨てた float 型です。float 値は Google Play Services のために受け取られます。
ブループリント内:
例として、Unreal Match 3 のサンプル ゲームの Global Game Instance ブループリントを見てみましょう。実績がキャッシュされたら、実績名および配列からもターゲット スコアをプルしてループを実行し、オフラインで見つかった値とすぐに比較します。そして、サービス値とローカル値で高い方を受け取ります。
実績へ値を書き出す
Write Achievement Progress は、パーセント (0.0% - 100.0%) ベースの Progress を所定のユーザーに提供されている実績 (Player Controller と User Tag) へ書き出すために、プラットフォームの実績 システムへメッセージを送ります。インクリメンタルな実績の場合は低めのパーセントを渡すのに対して、「単発の」実績の場合は常に Progress に 100.0
を渡します。
iOS Game Center の場合、インクリメンタルな実績は 1-100 なので、この値は実際に整数で送られます。Google Play サービス用にフロート値を送ります。
このノードは 潜在的な ノードなので、実行出力ピンたくさん付いています。一番上は「通過」ピンですが、他の実行出力ピンと同じように機能します。その下の 2 つのピン (On Success と On Failure) は、オンライン サービスが値を返す (または返しに失敗する) と実行されます。実行が Written Achievement Name に正常を返すと、Written Progress と Written User Tag は null 以外のノードと同等の値を返します。
ブループリント内:
例として、Unreal Match 3 のサンプル ゲームの Global Game Instance ブループリントを見てみましょう。現在の実績値をその値を増やすために必要なメトリクスと比較するループがあります。進展すると Write Achievement イベントが呼び出されます。
潜在的なノードは関数では使用できないので、このように行います。
プラットフォーム固有の実績を表示する
Show Platform Specific Achievement Screen は、現在のプラットフォーム用に提供されている Player Controller の実績を表示します。
ブループリント内:
Unreal Match 3 のサンプル ゲームの GameOverButtons ブループリント ウィジェットを例に取りましょう。[ShowAchievements] ボタンを押すと、ゲームは現在のプラットフォームの実績画面を表示しようとします。