LoginSignup
2
2

More than 5 years have passed since last update.

Unityで簡単な計算ゲームを実装してリリースまでした話

Posted at

概要

Unityの練習として簡単な計算ゲームをリリースしたので

その過程をメモしておきます

だいぶ前の話を書いているので

細かいところは変わっているだろうし

記憶があいまいなところがあるかもですが

ご容赦くださいませ

作ったアプリとその仕様

下記が作成したアプリです

CalcPower

仕様

  • 制限時間内に足し算、引き算、掛け算をどれだけこなせるかをスコアで競う
  • スコアはツイッターとゲームセンター(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で書いたコードなので

解読に時間がかかりそうなので

もし知りたいと言う人がいれば別記事に書きたいと思います。

では、今回はこんな感じで。次回は二作目を紹介します。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2