1

この質問は以前にもあったことは知っていますが、どこにも答えが見つからなかったので、これを重複としてマークしないでください。

Unity で弾丸が敵に当たったことを検出する必要がある 2D ゲームを作成しようとしています。

敵プレハブと弾丸プレハブの両方に Box Collider 2D と Rigidbody 2D があります。

まず、「Is Trigger」ボックスをチェックせずにやってみました。

これは私が使用していたコードです:

function OnCollisionEnter2D(coll: Collision2D)
{
    Debug.Log("Detected !");
}

失敗。

次に、「Is Triggered」ボックスにチェックを入れてみました。次のコードを使用しました。

function OnTriggerEnter2D(other: Collider2D)
{
    Debug.Log("Detected !");
}

またもや失敗…。

両方のオブジェクトにあるコンポーネントは「Box Collider 2D」です。

私が試したメソッドはどちらもエラーメッセージを返しませんでした.関数は呼び出されませんでした.

何が起こっているのか知っている人がいたら、できるだけ早く知らせてください – これが機能するまでゲームの作業を続けることはできません :/

これは Unity のバグですか? 報告すべきですか?

また、オブジェクトの 1 つのインスペクタのスクリーンショットを次に示します。 スクリーンショット

私のすべての質問に答えることができる人に乾杯! 投稿の形式が正しくなかったら申し訳ありません。フォーラムは初めてなので...

Fjパッカード。

4

2 に答える 2

6

敵と弾丸の両方のプレハブにRigidbody2Dを追加する必要があります (重力を無効にします)。

両方のプレハブでこの変更を行うと、機能するはずです。

于 2015-02-06T08:21:58.533 に答える
1

OK、それで私はそれを理解しました...

私は実際に古いバージョンの Unity を使用していました – それはそれと同じくらい簡単でした!

助けてくれたみんなに感謝します。

乾杯、Fjパッカード。

于 2015-02-06T23:14:27.217 に答える