おはじきゲーム

子供が親の職業を把握していて、 なんかゲーム作ってよ、みたいなことを気軽に言ってくれることもあり、 日曜の午後は一緒に作ろう的な感じでUnityいじってた。

インゲームの遊びとしては、オハジキゲームというか、 スリングショットというとちょっと違うのかな? まあ、モンストみたいな感じ。 コインみたいのを、引っ張って離すと、 飛んで行って、他のオブジェクトを弾いたりするっていう。

公開する予定もないものなので、デザインは躊躇なく拝借。 ここらへん気軽なところ。 子供のために作るゲームって色々気軽で良いっていう気づき。 公開しないでいいので、マネタイズなんて考えないでいいし、 ゲームデザインを拝借してもいいし、 粗があってもいいし、 子供なので喜びのハードルが高くない。 子供駆動開発。

以下、ざっくりやったことのメモ。

プロジェクト生成

2Dで作成。

自キャラのコイン

  • 円形の画像を作りSpriteに。今回は子供の写真を使ってやった。
  • Circle Coolider2D設定
  • Rigidbody2Dを設定。gravityは必要ないのでgravity Scaleを0
  • Collision DetectionはContinuous。コリジョン抜け防止。

BG

  • 背景画像をSpriteで配置

  • Cubeを作成
  • BoxCollider2Dを追加
  • Physics2DMaterialを作成し、Bouncinessを0.8に。Colliderに設定。
  • 複製し、transformを調整して四方に配置。

入力操作

public class Coin : MonoBehaviour {

    [SerializeField]
    float m_speedScale = 800.0f;
    
    Vector3 m_dragBeginPos;
    Vector3 m_dragEndPos;

    void Update () {
        if( Input.GetMouseButtonDown(0) )
        {
            m_dragBeginPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        }

        if( Input.GetMouseButtonUp(0) )
        {
            m_dragEndPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            var d = m_dragBeginPos - m_dragEndPos;
            GetComponent<Rigidbody2D>().AddForce(d * m_speedScale);
        }
    

結局、自キャラの操作までだけど、 結構受けがいい感じ。 もうちょっとオブジェクトとか足してみるかも。