読者です 読者をやめる 読者になる 読者になる

2Dゲームは終わらない〜Unityでお遊び〜

プログラミング超初心者がUnityを使って2Dゲームを開発するブログ

Unityの2Dシューティングゲームのチュートリアルをやってみる(その3)

チュートリアル Unity

ちょっと間があいてしまいましたが、チュートリアルの続きを進めました。

第05回 当たり判定とアニメーションイベントとレイヤー · unity3d-jp-tutorials/2d-shooting-game Wiki · GitHub

今回のポイントとしては

  • 衝突判定(OnTriggerEnter, OnTriggerExitなど)
  • オブジェクトの削除Destroy関数
  • Layerによる衝突の振り分け
  • Layer Collision Matrix ←これやばい

と、個人的に感じました。

オブジェクトを使い終わったらしっかりと削除しないと、メモリ上に展開されっぱなしになってしまうので、重要だと感じました。

でもUnityだと、ゲームの動作確認中にCloneという形で、Scene上に展開されているオブジェクトがわかるので、消し忘れが一発でわかるようになっていて、助かるなと感じました。

f:id:taris777:20161021202232p:plain

こんな感じで、オブジェクトを消し忘れていると、Cloneとしてどんどん増えていきます。

Layer Collision Matrixが神

今回、一番驚いたのがこちら。

Edit → Project Settings → Physics 2Dから開けます。

f:id:taris777:20161021203029p:plain

あらかじめLayerを作っておいて、Layerに乗っているオブジェクトどうしが衝突するかしないかの制御をGUI上で管理することができるもの。これやばいと思いました。

  • 敵飛行船と敵の弾には衝突するけど、自分の弾には当たらない。
  • 敵同士は衝突しない

こういう処理をプログラム上でやろうと思ったら結構な分岐処理になってしまう気がします。それに間違っているかどうかのテストも面倒臭い。

それが、画面上でマトリックスを見て一発でわかるし、変更できる。もはやテストは不要で、この画面上で目で確認すればそれでOK。ありえないでしょうこれは。すごいなー。

Unityは本当にゲーム制作に集中出来るようになっているのだと感じました。

 

チュートリアルももう直ぐ半分ですが、ゆっくり全部やっていこうと思います。