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

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

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

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

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

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

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

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

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

この本で、

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

ところまではできます。

f:id:marimoko3:20180925145300g:plain

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

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

次は

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

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

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

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

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

Unity2D:衝突処理をTagで管理する - Qiita
#はじめに UnityのTagを使うと処理の管理がわかりやすくなると思ったので記事を書くことにしました。 Unityの衝突処理はOnColliderを使う方法とOnTriggerを使う2通りの方法がありますが、 この記事ではTrigg...

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

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

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);
        }
    }

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

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

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

[Unity] Unityにおける衝突判定まとめ - Qiita
Unityは衝突判定を自動的に行ってくれるので、開発者はわざわざ衝突判定のコードを書く必要がありません。 しかし衝突判定でも、物理演算や衝突検出が関わってくると設定で混乱するので、ここで一度簡単にまとめてみることにしました。 # ...

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

【Unity】『Collider』をマスターする!
Unityにおける「当たり判定」のキモとなる「Collider」。そんな「Collider」を余さず詳しく解説しています。この機会に「当たり判定」をマスターしよう!

つまり

プレイヤーには

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

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

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

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

「Collider」をつけて

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

↓こうやってつけます

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

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

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

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