Skip to main content

ブロックのプレハブ

つぎ、ブロックのプレハブを作成し、ボールが当たったら消える処理を作りましょう。

画像の前準備

ブロックの画像(スプライト)は、他のスプライトと比べて、1つではなく、同じ画像に多数が一緒にまとまっている。必要なメモリーの使用量を最適化するためにゲーム開発の中でよくある作戦である。

ただし、まとまったままで使えないので、先に分割しないといけない。このため、Unityは「Sprite Editor」(スプライトエディタ)がある。

まず、ブロック画像を選択し、Inspectorで「Open Sprite Editor」を選択してください:

image.png

ここで、画像を各スプライトに分割ができる。手動で1個ずつ個別に区切りをつける場合もあるが、今回はきれいに揃えているので自動的に分割可能である。

「行列分割」を使い、4x4の行列で分割してもらう。「Slice」メニューで「Automatic」から「Grid by Cell Count」に変えて、4行と4列にして、最後に「Slice」を押してください。

image.png

これで、各ブロックを分割できたので、最後に適用するには「Apply」ボタンを押してください。プロジェクトビューで各スプライトを確認ができる(画像の ▷ を押せば出る)

image.png

プレハブ作成

お好みの色のブロックを選んで、ボールと同じようにドラッグドロップでシーンに追加してください。名前は「Brick」にしましょう。

image.png

当たり判定の処理を行うため、BoxCollider2D を追加してください。その後、「ボールがブロックが衝突したら、ブロックが消える」というスクリプト「BrickDestroy」BlockDestroyを作成しましょう。

using UnityEngine;

// ボールが当たったら、ブロックを消す処理
public class BrickDestroyBlockDestroy : MonoBehaviour
{
    // 衝突したら…
    private void OnCollisionEnter2D(Collision2D other)
    {
        // 自分のことを削除
        Destroy(gameObject);
    }
}

image.pngimage.png

プレハブ化にするのは、ボールと同様にヒエラルキーから「Prefab」フォルダーへドラッグドロップするだけ

image.png

確認のために、手動で「Prefab」フォルダーから、シーンにいくつかのブロックを適当に追加してみましょう:

image.png