Unity

UnityのPhysicsで当たり判定を検出する

前回で忍者を走らせて画面をスクロールさせることができました。

今回はプレイヤー以外の物体に触れたときに
当たり判定を検出できるようにしたいと思います。
この物体に触れたときに次のステージに進めるようにしたいです。

1.
シューティングゲームで使った宇宙船を使いまわします^^;
画像をプロジェクトビューにD&Dで登録して
シーンビューにD&Dして配置します。

次に宇宙船に当たり判定の枠を設置します。
Add Component → Physics2D → Box Collider2D

2.
インスペクタビューのIs Trigger にチェックを入れる。

3.
この宇宙船に触れたことを検出するためにタグを付けておく。
インスペクタビューのTag → Add Tag..

List is Emptyの + をクリックして新しいタグを作る。
次のステージに進むオブジェクトなので
nextstage という名前にしました。

再度ヒエラルキービューのship1を選択しTagをクリックすると
さっき作ったnextstageタグがあるのでこれを選択。
これで宇宙船側の衝突設定は終了。

4.
今度は忍者側の設定をする。
nextstageタグの宇宙船に触れると
goodという文字をデバッグエリアに表示します。

スクリプトNinjaMoveのUpdate関数外に追加。

//ship1との当たり判定。 Update関数内に書くとエラーな
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "nextstage") //もしnextstageタグの物体に触れると
{
Debug.Log("GOOD"); //GOODという文字列表示
}

}

5.
実行してみよー

うむ!
宇宙船に触れるとGOODの文字が出たー^^v

試しにnextstageと違うタグを指定してみたら
GOODの文字が出なかったのでちゃんとタグの判別もできてるね。

if (other.tag == "nextstage")

if (other.tag == "hogehoge")

////////////////////////////////////////
ー広告ー



-Unity

© 2024 Bou.O The World Powered by AFFINGER5