oniyarai’s tech memo

oniyarai’s tech memo

すぐ忘れる自分に捧げるメモ

衝突時のTrigger処理

OnTriggerEnter系とCompareTag

ColliderのコンポーネントでIs Triggerのチェックを入れていた場合、以下は2Dの場合。 引数のcollisionに衝突したオブジェクトの情報がある。CompareTagでオブジェクトにTagが設定されているかどうかチェックできる。

        private void OnTriggerEnter2D(Collider2D collision)
        {
            // 隕石またはターゲットマーカのオブジェクトと接触した場合、爆発処理
            if (collision.gameObject.CompareTag("Meteor") || 
                collision.gameObject.CompareTag("TargetMarker")) {
                DeactivateSelf();
            }
        }
        }

同系列でOnTriggerExitとOnTriggerStayがあり、Exitはオブジェクトの衝突が終わった(離れた)時、Stayはオブジェクトが重なっている間中コールされる。 また、それぞれ2Dの場合は末尾に2Dが付く。 これはまた後日。