Prefab同士の当たり判定

Unityで2Dゲームを作っています。

昨日は当たり判定(衝突判定)に苦戦していました。

あれこれ試していたのですが、なかなかうまくいかない。

実現したいのは

「自動で、左からキャラクター(Prefab)が次々に出てきて右に動く。

(そして一定の場所まで来たら止まる)

この時にキャラ同士が重ならないで順番に並んでくれるようにする。」

ということです。

今朝ちょっとやり直してみたら

(今のところ)すんなり動きました。

まず、Prefabに「Rigidbody2D」「Collider2D」をつけます

物理挙動ではなくて座標(x座標を変えて)で動かしているので

「OnCollisionEnter2D」を設定しても、反応しませんでした。

キャラが並んで止まってくれません。

なので「Collider2D」の「isTrigger」にチェックを入れて

OnTriggerEnter2D」を使ってみることにしました。

昨日もそうやって、

かつ「OnTriggerExit2D」も「OnTriggerStay2D」も使ってみたのですが

時々、キャラが変なところで止まってしまう、つまり、

自分の進行方向(右側)に何もないのに進まなくなってしまうことがありました。

なので今度は自分の進行方向(右側)の当たり判定をしようと思って

(「OnTriggerStay2D」の中で)

「RaycastHit2D hit = Physics2D.Raycast・・・」とやらを使おうとしたのですが

何をやってもhitがnullにならず、というかこれの引数の使い方

方角の指定の仕方がわからず、

RayCastその4、Raycastを2Dで使う【Unity】 – (:3[kanのメモ帳]

↑難しすぎてわからなかった。(いつか解読できるようになるといいな・・・)

参考になったサイト。ありがとうございます!!

Unityの2Dゲームで「当たり判定」の基本を30分で理解するコツ!(前編) - Unity不定期便
Unityの2Dゲームにおいての「当たり判定」とその後の処理方法について、基本をご紹介します!「前編」では、主に基本概念とOnTriggerEnter2Dなどを取り上げます。
Unityの2Dゲームで「当たり判定」の基本を30分で理解するコツ!(後編) - Unity不定期便
「後編」では、「OnCollisionEnter2D」「Physics2D.Linecast」などの使い方を解説していきます。レイヤー構造なども合わせて紹介しています。
OnTriggerEnter2DとOnCollisionEnter2Dの違い - 踊るプログラマー
OnTriggerEnter2DとOnCollisionEnter2Dの違いが分からん!更に言うと、OnCollisionExit2DとOnTriggerExit2Dの違い、OnCollisionStay2DとOnTriggerStay2Dの違いも分からん!っとなったので調べました。2Dについて書いていますが、基本3D...
Unityでの衝突検出 - とりあえず移転してみました
衝突の検出で色々と試行錯誤・・・ネットで見ても、以外に情報が少ない。 基本的な部分をおさらい。UnityではオブジェクトにRigidbodyをアタッチすると剛体として認識する。この剛体同士がぶつかると自動的に物理的な挙動を行うようになる。 ぶつかり、反発係数とか重量によって反発する。 コライダーを設定しておけば、ぶつか...

で、今朝、Prefabのタグを指定してそれだけに当たり判定するようにして

OnTriggerEnter2D」だけ使うようにしたら、ちゃんと動くようになりました。

OnTriggerEnter2Dの中でやっている処理はフラグを変更することだけです。

update()の時に、そのフラグによって挙動を変えています。

これで伝わるかわかりませんが、

もしかしたら誰かのヒントになるかもしれないので

書いておきます。

    void OnTriggerEnter2D(Collider2D other) {
        if (other.gameObject.tag == “guest”){
            
            if(x <= 9.0f){
                Destroy (gameObject);
                Debug.Log(“さようなら”);
            }
            this.UpdateFlag =false;
            Debug.Log(“あたり”);
        }
    }
 

人のブログの詳しい説明を読んでもその時は頭に入ってこなくて

翌日また読んでみると、ああなるほど、と少しわかったりすることもよくあります。

専門用語が多すぎるのと、わからないことが多すぎる。。。

リファレンス見ても、難しいです。

それでもやっていると、ある時すんなり解決したりするので

諦めないことが肝心かなぁ、といつも思います。