Unity制作日記3(ブロックの消滅・クリア判定)
Unityで制作しているブロック崩しの進捗報告。
ブロックにボールが当たると消滅する動作とクリアの判定を実装しました。
ブロックの消滅
ブロックに当たり判定をつけるために『Box Collider 2D』を追加。ブロックに当たり判定が起きた時にOnCollisionEnter2Dという関数が呼び出されるので、そのときに Destroy(gameObject)とすることでブロックの消滅は実装できた。
クリア判定
ボールがブロックに当たった数をカウントすることでクリアの判定を行うことにした。ボールとブロックの衝突の判定はそれぞれ別のスクリプトで行われているので、ゲーム全体を監視できるスクリプトを作ることにする。(GameDirectorと名付けた)
GameDirectorスクリプトにカウント用の変数N=0を宣言するが、他のスクリプトから弄れるようにPublicで宣言する。
先ほども説明したが、ブロックのスクリプトの中でブロックに当たり判定が起きた時にOnCollisionEnter2Dという関数が呼び出される。
そのときにN++をすることによってボールがブロックに当たった数をカウントできる。
GameDirectorスクリプトで if (N == 6) SceneManager.LoadScene("ClearScene");とすることでブロックが6つ消滅したらクリアシーンに移るようにできた。
これで一応ゲームとしては成り立つものができました。
あとはオリジナル要素を加えれば完成となります。