2014年12月06日

ゲームのアップグレード (38) | 復活ネイティブプラグインでポップアップ表示

さて、苦手なネイティブプラグイン、また帰って来てしまいました...
ホントは帰って来たくないんですが、前回追加した "Rate US" で、レビューを促すポップアップで、アングリーバードSWみたいに、いくつか選択支を入れたポップアップにする必要があるんですよね。
なんで今回は、似ている様で全然違う!複数のボタンを持つポップアップの表示です!


今までのポップアップと何が違うか考えてみる
さて、メッセージ通知のポップアップ自体は、だいぶ昔に、結構簡単に UIAlertView クラスを使って表示できたんですが、そうそう、あれ、別にボタンが押されたらポップアップが消えるだけで、ボタンの種類とか、別に取って来てる訳じゃないんですよね。

そう。今回は、ボタンが2つ以上あるんで、ボタンの種類を返さないといけないんですね。


標準ポップアップにボタンを追加
じゃ、まず簡単な所から!
ボタンを増やしてみたいと思いますね。
UIAlertView クラスには、ボタンを追加する様の、addButtonWithTitle っていう便利そうなメソッドがあるんで、それを使ってみます。
Screen Shot 2014-12-04 at 2.38.31 AM.png
こんな感じで、ボタンを無理矢理追加。
で、デバイスでは....こんな感じで表示はされてますね!
IMG_9310.PNG
さて、ここからボタンの種類を取ってこないと駄目なんですが、このポップアップ出てる間も、ふつーに後ろのゲーム、動いてるもんなぁ〜。なんで、入力を待って止まってる訳じゃないんで、結果をどっかに格納して、Unity側からボタン入力が完了した事をチェックにいかないと駄目っぽいですなぁ〜....
さて、どうしよう.....


新規クラスを作ってボタン入力をキャッチ!
なんか、この辺りの、Unityとネイティブプラグインの連携って、検索掛けても、引っかかる情報の数がガクンと減るんですよねw
で、指向錯誤の結果、なんとか動いた形がこんな感じになりました!
Screen Shot 2014-12-04 at 3.21.33 AM.png
これはヘッダ側

単純に UIAlertView を継承した新しいクラスで、clickButtonAtIndex メソッドを上書きする事で、入力は拾える様になったんですが、それを保存して、Unity側に返すのにまた一苦労、って感じでしたね。

結局、Unity側ではいつものパターンなんだけど、インスタンスをシングルトンにして、ポップアップ表示後もアクセス可能な様にして、Unity側からボタン入力完了まで毎フレーム結果を見に行く、って形です!

クラスの実装はこれ。
Screen Shot 2014-12-04 at 3.24.44 AM.png
難しい事をしてる訳じゃないんだけど。
で、Unity側とのインターフェースとなる部分がこれ。
Screen Shot 2014-12-04 at 3.25.08 AM.png
showRateUsAlertPopup でポップアップの表示。
アラートは、さっきの RateUsAlertPrompt の getInstance で取得して、書く要素を設定。

で、ポップアップ表示後は、getResultOfRateUsAlertPopup を毎フレーム呼んで、結果を確認。
0 以上の整数だと何かのボタンが押されてるはずなんで、ボタンに応じて次の処理に分岐。

こな感じ!以上!!

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


バンドルがお得

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

メールアドレス:

ホームページアドレス:

コメント: