概要
Unityの練習として簡単な計算ゲームをリリースしたので
その過程をメモしておきます
だいぶ前の話を書いているので
細かいところは変わっているだろうし
記憶があいまいなところがあるかもですが
ご容赦くださいませ
作ったアプリとその仕様
下記が作成したアプリです
仕様
- 制限時間内に足し算、引き算、掛け算をどれだけこなせるかをスコアで競う
- スコアはツイッターとゲームセンター(iOSのみ)でシェアできる
以上。シンプルです。
実装
ボタンについて
ボタンの実装にはいくつか方法がありますが (あとから知った)
今回はmainCameraに下記プログラムを書いたクラスを追加して実装しました
void Update () {
if(Input.GetKeyDown (KeyCode.Mouse0)) {
Vector3 aTapPoint = amera.main.ScreenToWorldPoint(Input.mousePosition);
Collider2D aCollider2d = Physics2D.OverlapPoint(aTapPoint, enablelayer);
if (aCollider2d) {
tapped_obj = aCollider2d.transform.gameObject;
if (tapped_obj.tag == "num" || tapped_obj.tag == "back" || tapped_obj.tag == "rank" || tapped_obj.tag == "twitter") {
tapped_obj.SendMessage ("tapped");
}
}
}
if(Input.GetKeyUp (KeyCode.Mouse0)) {
if (tapped_obj.tag == "num") {
tapped_obj.SendMessage ("untapped");
}
}
}
簡単に説明すると
どこでもいいので画面がタップされたら最初のif文の中に入り
タップされた座標にあるオブジェクトcolliderを取得してきます
そのcolliderのtag名がnum、backなどだったら
そのオブジェクトに対してtapped関数を実行するようにSendMessageを送る
と言った具合です
逆にnumオブジェクトからアンタップした場合に
untapped関数を実行するようにSendMessageを送ります
画面の遷移について
画面の遷移にはシーンの切り替えをしています
ボタンを押すと下記のようにnameのシーンに飛ばします。
public void tapped () {
Application.LoadLevel(name);
}
ツイッターのシェアボタンについて
ツイッターのシェアボタンは下記を使っています。
コードはこんな感じです。
public void tapped () {
MainSpriteRenderer.sprite = _tapped;
string text = PlayerPrefs.GetString ("twitter");
#if UNITY_IOS
uniTwitterShare (text);
#elif UNITY_ANDROID
Application.OpenURL("http://twitter.com/intent/tweet?text=" + WWW.EscapeURL(text));
#endif
}
ゲームセンターのボタンについて
ゲームセンターは下記を参考に入れてます。
http://qiita.com/yimajo/items/503cb2451e303e9f3841
public void tapped () {
int highScore = PlayerPrefs.GetInt (SceneManager.GetActiveScene().name + "Score");
Ranking.ReportScore(highScore, "CalcPower_" + SceneManager.GetActiveScene().name);
Ranking.ShowLeaderboardUI ();
}
テスト
実機にあげてテストします。
あげてみると変な挙動してたりします。
特にUIviewを使おうとしていると
サイズ感がおかしくなって面倒だったので
このアプリでは全て画像になっています
リリース
大変申し訳ないですが、
大分前なので古くなっていますし、
忘れてしまったので飛ばします。
問題点
デザイン的なところは説明などは一切無くしてどの国でも数学の記号は同じということでリリースしていますが
説明文がないので最初はとまどいそうというのがかなり懸念でした
友人にやってみてもらったところ
人によっては結構すぐわかってもらえますが
あまりスマホ慣れしてない人には不親切すぎるUI設計だったようです
もうちょっとUIも考えないとダメですね
最後に
とりあえず、これだけ簡単なアプリでもちゃんとApp Storeに置いてもらえるということに
驚いたことを覚えています
審査落ちしてもいいかなくらいの心持ちだったのですが、
一発通過で拍子抜けしました
あと、計算機部分のコードがないじゃないかと思われた方もいるかもしれませんが、
一年近く前に書いたのと、初めてUnityで書いたコードなので
解読に時間がかかりそうなので
もし知りたいと言う人がいれば別記事に書きたいと思います。
では、今回はこんな感じで。次回は二作目を紹介します。