1. moscoara_nico

    No comment

    moscoara_nico
Changes in body
Source | HTML | Preview

1回理解してもしばらく経つとやらかしてるのでざっくり自分用まとめます。

Collision系とTrigger系

  • Collision系関数
関数 呼び出されるタイミング
OnCollisionEnter 他のcollider/rigidbodyに触れたとき
OnCollisionExit 他のcollider/rigidbodyと触れ合うのをやめたとき
OnCollisionStay 他のrigidbody/colliderに触れている間
  • Trigger系
関数 呼び出されるタイミング
OnTriggerEnter Collider が他のトリガーイベントに侵入したとき
OnTriggerExit Collider が other のトリガーに触れるのをやめたとき
OnTriggerStay OnTriggerStay はトリガーが 他の Collider に触れ続けている間

スクリプトリファレンスより引用

違いはRididbodyの有無

Trigger系はColliderのIsTriggerのチェックボックスをオンにするだけでOK。
Collider系は衝突するオブジェクト”両方”がColliderとRigidbodyを持っている必要がある

動くもの同士の衝突判定=> Collision系
どちらかが動かない衝突判定=> Trigger系

※もっと詳しい解説 Unityつかうよ 
※もっと詳しい具体例とか Unityにおける衝突判定まとめ

衝突対象の判定

①タグ

基本こっち使う(のわりに忘れがち)
Add Tagでタグを追加して使う。

タグを使った例
    void OnCollisionStay(Collision other)
    {
            if (other.gameObject.tag == "sample")
            {
            Destroy(other.gameObject);
            }
     }

②レイヤー

特定のオブジェクト同士に判定をさせたくないときに便利。
Edit → Project Settings → Physics 2Dでできる。

レイヤーを使った例
    void OnTriggerEnter (Collider other)
    {
        string layerName = LayerMask.LayerToName(other.gameObject.layer);

        if( layerName == "sample")
        {
            Destroy(other.gameObject);
        }
    }

スクリプトリファレンス

他またあったら追記します。