web-dev-qa-db-ja.com

Unity 2Dで衝突検出が機能しない

2つの2Dゲームオブジェクトがあります。それぞれに、ボックスコライダー2Dとキネマティックではないリジッドボディ2Dがあります。ゲームがプレイされると、一方が他方に向かって移動し、衝突します。

ただし、移動するGameObjectには次のメソッドもあります。

void OnCollisionEnter(Collision collision) 
{
    print( "Collided with someone" );
}

Printステートメントは印刷されないため、おそらくメソッドが呼び出されることはありません。どこがいけないの?

12
Jean Finley

Unityは、2Dの物理手法をすべて再現し、最後に「2D」という単語を貼り付けました。したがって、例として、次のように変更する必要があります。

void OnCollisionEnter2D(Collision2D collision)

そして基本的に他の2D物理学の事柄と同じです。

27
T. Kiley