blog

プログラミングとひとりごと。

Unity2Dで当たり判定(当たったものによって処理を分けたい)

ゲームを作るにしても何にしても、全体をなんとなくイメージした後は、

解決したいことをひとつだけ決めて、

その目の前のひとつことに取り組むのが、進めていくポイントかなと。

全部一度に解決しようとしても難しいので。

 

今作りたいアプリのうちの1つは

上からいろんな物が落ちてくるのをキャッチする2Dゲームです。

上から物が落ちてくるゲームの基本のとこの作り方は

Unityの教科書(本)に載っているので、それを参照。

 

この本で、

「上から物が落ちてくる」「プレイヤーが左右に動く」「当たったら消す」

ところまではできます。

 

f:id:marimoko3:20180925145300g:plain

 

先日は、これにポップアップ画面をつけようと、

やり方をネットで調べました。その結果が上の動画。

 

次は

特定の物をキャッチした時だけ別の処理をしたい。

なんとなくTagを使えばいいのでは?という気はしている。

 

なにせ前回ゲームを作ったのは数ヶ月前で

その時の記憶もほとんど薄まってて、全然覚えてないのです。w

 

「unity 当たり判定 タグ」で検索。

 

qiita.com

 

トリガー。コライダー。ああなんか聞いたことあるような(忘れてる)

そして今は何をどうやって当たり判定しているんだっけ、、、

 

void Update () {
      ・・・
        Vector2 p1 = transform.position;
        Vector2 p2 = this.player.transform.position;
        Vector2 dir = p1 - p2;
        float d = dir.magnitude;
        float r1 = 0.5f;
        float r2 = 1.0f;

        if(d < r1 + r2){
            Destroy(gameObject);
        }
    }

 

うん、ああ、ええと、何も使ってないような?

 

そして記事をぼーっと読んでいてもよくわからないので

あれこれ他のも読んでみる

 

qiita.com

 

これ、すごく詳しく丁寧に書いてある

kimama-up.net

 

つまり

プレイヤーには

「Collider」と「RigidBody2D」をつけて「IsTrigger」にチェックにする

(BodyTypeをkinematicにしないとプレイヤーが下に落ちていくw)

【Unity】Rigidbody2Dの新しい設定「Dynamic」「Kinematic」「Static」と「Simulated」の使い分け - テラシュールブログ

 

落ちてくるもの(Prefab)には

「Collider」をつけて

 タグをつける、あれ、Tagってどうやってつけるんだっけ

 

↓こうやってつけます

【Unity】Tagの追加ってどうやるの?【初心者向け】

 

あれ、もしかしてタグをつけて判別できるなら

今までの上の処理いらないのかな・・・

 

 というところまでで一旦記事を公開します・・・