[Unity Tips]Rigidbodyでの当たり判定取得
Unity Tipsです。
コードはC#となります。
Rigidbodyが設定されている3Dオブジェクトの
当たり判定を取得する方法です。
// 衝突した瞬間を検出
void OnCollisionEnter(Collision other)
{
// 処理を書く
}
// 衝突したオブジェクトが離れる瞬間を検出
void OnCollisionExit(Collision other)
{
// 処理を書く
}
// 衝突中を検出
void OnCollisionStay(Collision other)
{
// 処理を書く
}
isTrigerを設定している場合は下記で取得。
※isTrigerがtrueだと衝突の検出のみになります
// 衝突した瞬間を検出
void OnTriggerEnter(Collider other)
{
// 処理を書く
}
// 衝突したオブジェクトが離れる瞬間を検出
void OnTriggerExit(Collider other)
{
// 処理を書く
}
// 衝突中を検出
void OnTriggerStay(Collider other)
{
// 処理を書く
}
2017/05/07 引数誤りを修正 phinさんご指摘ありがとうございますm(_ _)m
2017/07/01 Colliderが設定されているオブジェクトにはRigidbody必須
衝突したオブジェクト情報は
引数のCollisionに格納されています。
// 衝突した瞬間を検出
void OnCollisionEnter(Collision other)
{
// 対象のクラスが取得可能かチェック(もっといい方法あるかも)
[Class] c = other.rigidbody.GetComponent<[Class]>();
if(c != null)
{
// 処理を書く
}
}
何か間違い等がありましたらコメント等で
ご指摘頂けるとありがたいです。
失礼します
OnTrigger関係のメソッドの引数の型はColliderではないでしょうか?
こちらをご覧下さい
https://docs.unity3d.com/jp/540/ScriptReference/Collider.OnTriggerEnter.html
ご指摘ありがとうございます。
記載が間違っておりましたm(_ _ )m