2014年11月25日

ゲームのアップグレード (30) | ランキングボーナス part3 実装開始

なんか、記事の水増し行為っぽいですが、そろそろ実装していきますね!
ちなみに、この辺は、ちょっと試行錯誤してる時間が長くて、時系列では記事かけてないんですよね。
なんで、ちょっとライブ感は減ってるかも。


まずは通知画面表示から
じゃ、ボーナス獲得時、っていうか、ランキング発表画面ですかね?
これまでのデイリーボーナス画面がベースですが、こんな感じで作ってみました。

いや〜。ホントにアニメーション機能を使っただけなんで、もっといろいろ出来たらいいんですが....

でも、まずはここから出発ね♪


ちょっと脱線。順位表示の判定方法
ちょっとだけ脇道に逸れますね。
これも他になにかいい方法があるのかもしれないけど、順位の表示方法に関して。
知ってる通り、序数って、英語だとちょっと判定面倒なんですよね。テキストも変えないといけないし。
具体的には、最後が1、2、3の時は、1st、2nd、 3rd、それ以外は XXth。って感じだけど、十の位が 1 の時は th。
多分これで合ってるよね?

ま、そんな分けで、テキストも4種類用意してるんだけど、実際の判定はこんな感じになってます。
Screen Shot 2014-11-24 at 5.42.56 PM.png
テキスト関連は最初だけで、163行目以降は気にしなくていいんだけどね。
順位の100で割ったあまりを求めてそれが11未満か、13より大きい時、さらに順位を10で割って、1か2か3の時、それぞれにあったテキストを設定。
それだけだよね。

ちなみに、テキストの設定はこれ。
Screen Shot 2014-11-24 at 5.47.09 PM.png


リーダーボードの情報を GameCenter から取得
じゃ、リーダーボードからランキング情報を取って来ましょう!
ま、Unity の Social クラスを使うんで、そんなに凄い難しい訳でもないんだけど....

情報取得には、ILeaderboard クラスを使いますよー。
Screen Shot 2014-11-24 at 6.01.55 PM.png
このあたりは、using UnityEngine.SocialPlatforms; (4行目)を書いておかないと使えないんで忘れずに。

さ、で、大体の機能はこの下のスクリプトに入ってるはず。
Screen Shot 2014-11-24 at 8.02.32 PM.png

GameCenterにロードを指示してるのが 67行目なんだけど、渡してるのがロード終了時に呼ばれるコールバックメソッドですな。
なんでこういう形になったのか忘れちゃったんだけど、ここで渡してる DoneLeaderboardLoading の中で、この LoadLeaderboard に渡されたコールバック関数を呼ぶ形になってます。なんかややこしいな〜。なんでだろ?
ま、いいか。
コールバック関数の保存の仕方は、ここの 52行目〜55行目みたいな感じで。
で、コールバックの呼び出しは 72行目ね。

ざっくり解説は、リーダーボードクラス(data)が null だったら、新規で作成(62行目)。ついでにリーダーボード id をセット(63行目)。
データロード完了時のコールバック関数が 70行目。
データロード後は、49行目がリーダーボードの名前取得。自分の順位の取得が76行目。ランキングの参加者数の取得が80行目。自分に関連するデータの取り出しが44行目。ISocre 型で返ってくる。
これだけね!!

さて、実行してみると....
ちゃんとデータは読めてるね!
あっ、でも一つ勘違いしてた!!
IScore の中の rank に順位が入ってるんだけど、順位は1から始まるみたいね。0から始まるもんだと思ってた!

じゃあね!

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪


なんかアメリカは今リアルGTA状態だけど....

posted by やまけん at 09:48| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。