どこまでも自由な日々

パソコン初心者主婦のブログです。

Shooting Game チュートリアル 第05回

第5回 当たり判定とアニメーションイベントとレイヤー

すすめていきます。

みんなだいすき当たり判定!

 

5.1 プレイヤーに当たり判定を付ける

Colliderコライダーを使うよ。colliderとは衝突型加速器と訳すらしい。

なんか小さい仮面ライダーみたいなのを想像してたよ。

 

BoxColliderを選択。大きさは注意書きにそって、0.05に設定してみる。

f:id:moph-moph:20150529083830p:plain

5.2 エネミーに当たり判定を付ける

f:id:moph-moph:20150529084141p:plain

EditColliderを押して編集。

f:id:moph-moph:20150529084157p:plain

5.3 弾に当たり判定を付ける

これも上と同様に。

プレハブをシーンビューに持っていって、直して、Apply。

 

5.4 スクリプトから当たり判定を検出する

「OnTriggerEnter2D」「OnTriggerStay2D」「OnTriggerExit2D」

それぞれどう違うの?

 

とりあえずSpaceship.csは問題なし。

…あれ?ぶつかってないのに爆発したよ?

そのまますすめてみる。

5.5 爆発の制御

5.6 爆発した後のゲームオブジェクト削除

アニメーションのなかでタイミングを指定するかんじ。

5.7 弾とエネミーが削除されるエリアを作る

OnTriggerExit2D…「そのエリアから出たら」。

 

ちょっと疲れてきたので休憩。

f:id:moph-moph:20150529091313p:plain

つぎ、レイヤーで当たり判定の制御。

あれ、さっき設定したSortingLayeresと何が違うのだろう?

Sorthingは2D描画の順番だった。下に行くほど表(こちら)に近い。PhotoShopとかと逆なイメージ。

Layerは表示は関係なさそう。

Layerは、主にRendering設定のグループ分けに使う。

らしい。(TagとLayer - Unityな日々(Unity Geek)

今回は、それぞれの当たり判定の条件を設定。

うんうん、問題なく進んでいきます。

 

と思ったら、当たり判定が上手くいっていない。

EnemyBulletにあたっても爆発しない。

おかしい!!

 

と思ったら、Layer名のスペルミスでした。

順調すぎー。

 

5.8 PlayerBulletゲームオブジェクトの削除

あれ、「◎秒後」が出てきた!

Destroy (gameObject, lifetime);

lifetime秒はfloatで。これ、覚えておこう。

 

ふぅー。

以前挫折したところよりだいぶ進んでる気がする。

続きます。