前回で忍者を走らせて画面をスクロールさせることができました。
今回はプレイヤー以外の物体に触れたときに
当たり判定を検出できるようにしたいと思います。
この物体に触れたときに次のステージに進めるようにしたいです。
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")
////////////////////////////////////////
ー広告ー