この記事でのバージョン
Unity 5.2.2f1 Personal
はじめに
前回iOS、前々回Androidでランキングとアチーブメントを実装しました。
なお、Androidの方は有料のアセットを使用しているので、ご注意ください。
ただ、ランキング関連の処理をする度にiOSとAndroidで処理を分けるのは非常に面倒なので、
上記のiOSRankingUtilityとAndroidRankingUtilityを
使い分けて処理を行うRankingManagerを作りました!今回はそんな記事。
まぁ、全部一緒に作ったんですけどね(:3っ)∋〜
RankingManagerとConfig
ではさっそく、プログラムです!
当たり前ですが、iOSRankingUtilityとAndroidRankingUtilityが無ければ機能しません。
この、RankingManagerはSingletonMonoBehaviourというクラスを継承しているので、
そんなの知らない!って方はこちらもご確認ください。
使い方
まずConfigのRankingTypeにランキングの種類、
AchievementTypeにアチーブメントの種類を、
各々のDictionaryにランキングorアチーブメントのIDを設定します。
そして、RankingManagerを以下のように適当なオブジェクトにアタッチするだけで準備OK。
これだけで起動時に認証をしてくれます。
機能の実行方法は以下のとおりです。
//スコア送信 RankingManager.Instance.ReportScore(Config.RankingType.HighScore, score); //アチーブメント送信 RankingManager.Instance.ReportProgress(Config.AchievementType.Achievement1, progress); //ランキング一覧(リーダボード)表示 RankingManager.Instance.ShowLeaderboardUI(); //アチーブメント一覧表示 RankingManager.Instance.ShowAchievementsUI();
なお、以下のようにスコアやアチーブメントを送信した後のコールバックを登録する事も出来ます。
//スコアを送信した後に実行するメソッドを登録 RankingManager.Instance.ReportScoreCallBack += SendScoreCallBack; //アチーブメントを送信した後に実行するメソッドを登録 RankingManager.Instance.ReportProgressCallBack += SendToAchievementCallBack;
シンプル!!
処理内容
処理内容はiOSRankingUtilityとAndroidRankingUtilityを使い分けているだけなので割愛。
各OSの詳しい処理内容は以下を参照のこと。
おわりに
これで、ランキングやアチーブメント周りのiOS、Android両対応、
さらには送信時にOSを気にしなくて良くなりましたね!
やってみると意外と簡単、最初からこれで良かったんや(:3っ)∋〜