Cocos Creator で 3Dブロック崩しゲームを作る続きです。
https://noitaro.github.io/cocos-creator-3d-block-breaking-3/
今回の目標
ボールが当たったら消えるブロックを作ります。
ブロック追加
消えるブロック の元となる 箱 を追加します。
消えるブロックは 複数置く予定なので 一元管理できるように作っていきます。
そのため 空Node を作り、その中に 3DBox を配置します。
配置した 3D Box の設定を、壁やバーを作ったときと同じ要領で変更します。
- 名前を分かりやすく「Block」に変更
- Scale を X=80、Y=30、Z=25 に変更
- 緑色のマテリアルを作って設定
- 壁やバーと同じ材質の PhysicsMaterial を設定
上記設定を終えると、消えないブロックが完成します。
ボールが当たったら消える処理を追加
次に、ボールが当たったら消える処理を 今作ったブロック に追加します。
スクリプトファイル追加
処理を書くためのスクリプトファイルを追加します。
Assets の Script フォルダを選択してから右クリックで Create > TypeScript と選択して行きます。
名前は「Destroyer」と名付けました。
「Destroyer.ts」を下記のように書き換えます。
1 | const {ccclass, property} = cc._decorator; |
start関数は、プログラムが読み込まれた時に実行される関数です。
処理の内容は「自分に何かが当たったら自分自身を消す」こんな感じの処理になっています。
ブロックに処理を追加
今作ったスクリプトを ブロック に追加します。
Block を選択して 右の Add Component ボタンから Custom Component > Destroyer の順で選択して行きます。
ブロックに スクリプトを設定すると、ブロックが消えるようになります。
プレハブ化
消えるブロックが完成したので、コピーして複数並べます。
普通にコピーしてもよいのですが、今回はプレハブ化して再利用できるようにしたいと思います。
プレハブ化は簡単に出来ます。
Node Tree にある Block を、Assets にドラッグするだけです。
Node Tree の Block が青文字になり、Assets に Block がコピーされればOK
プレハブブロックを配置
後は、プレハブ化したBlock を好きなだけ配置すればOK
とりあえず、5個並べてみました。
おわりに
今回の作業も GitHub で公開しています。
よろしければ参考にどうぞ。
https://github.com/noitaro/cocos-creator-3d-block-breaking/releases/tag/0.4
次回は、ゲーム性を持たせるために ゲームクリア処理 を入れようと思います。