ブロックの配置
ブロックの追加と設定を行います まずはブロックの追加です。もう慣れたかもしれませんが、
3D Object > Cubeで生成
作成した「Cube」を「Block」に名前変更 > Transformを下記の画像のように設定します
ボールのタグ設定
ボールのゲームオブジェクトにタグで名前を付けてあげます
「Ball」を選択 > TagをクリックしてAdd Tagを選択
Tagsの「+」をクリック > nameに「Ball」と入力
tagの作成が終わったら再度「Ball」のゲームオブジェクトを選択し、同様にTagの欄を開きます
先ほど作成したBallのタグがあると思うので選択してタグをつけてください
スクリプトの追加
続いてスクリプトを追加していきます。今回はブロックがボールが当たったら消える処理を記述していきます
Blockゲームオブジェクトを選択 > AddComponent > New Script > Blockと入力
スクリプトが作成手出来たらAssets内のBlockをダブルクリックで開いてコードを書いていきます
コードは下記のようになります。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Block : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
//オブジェクトが衝突したときに呼び出される
void OnCollisionEnter(Collision collision)
{
//衝突したオブジェクトがボールタグがついているかどうか
if (collision.gameObject.tag == "Ball")
{
Destroy(this.gameObject); //ブロックを消す
}
}
}
コードの説明
void OnCollisionEnter(Collision collision)
OnCollisionEnterはゲームオブジェクトをが衝突したときに呼び出される関数です
if (collision.gameObject.tag == "Ball")
{
Destroy(this.gameObject); //ブロックを消す
}
collision.gameObjectが衝突したオブジェクトのことで、そのオブジェクトがBallのときif文内の処理をするようにしています
ブロックを増やす
これでブロックは完成です!ただ、一つでは寂しいのでブロックを増やしてみましょう
ブロックを選択してコピー、またはショートカットキーでコピーし、張り付けて増やしてみましょう
それぞれのTransformで位置を設定して下記のようにしてみました
だいぶブロック崩しに近づきましたね
発展 Prehabについて
実装の確認
最後に実装の確認をします
いつものように画面上の再生ボタンをクリックしてゲームを始めてみてください
下のようにボールが当たったらブロックが消えたら成功です
うまくいかない場合は、スクリプトとタグがきちんと設定されているか確認してみてください
まとめ
今回はブロックを追加し、ボールが当たったら消える機能を実装しました
もうほとんどブロック崩しになりましたね
次回が一応基本的なブロック崩しは最後で、ゲーム終了判定をしていこうと思います
コメント