コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity 入門】【チュートリアル】ブロック崩しを作る 2. ブロックの配置とゲームオーバーの実装

目次

前回のチュートリアル

はじめに

f:id:baba_s:20180116154224g:plain

前回は、壁、パドル、ボールの作成を行いました
今回は、ブロックの配置とゲームオーバーの実装を行っていきます

ブロックの作成

まず、ブロックを1つ作成していきます

f:id:baba_s:20180116143144p:plain

Unity メニューの「GameObject>3D Object>Cube」を選択します

f:id:baba_s:20180116164758p:plain

作成した「Cube」を選択して F2 を押して、
「Block」と名前を付けて Enter を押します

f:id:baba_s:20180116165731p:plain

さらに、「Block」を選択して、パラメータを下記のように設定します

  • 「Position」(位置)の入力欄に左から順に「0」「0」「25」と入力
  • 「Scale」(大きさ)の入力欄に左から順に「2.5」「1」「1」と入力

f:id:baba_s:20180116145500p:plain

次に、ブロックにボールがぶつかったら、
ブロックを破壊するためのプログラムファイルを作成していきます
Unity メニューの「Assets>Create>C# Script」を選択します

f:id:baba_s:20180116193206p:plain

作成したプログラムファイルに「BlockController」という名前を付けます

f:id:baba_s:20180116193118p:plain

「BlockController」をダブルクリックすると、
お使いの環境に合わせて Visual Studio や MonoDevelop などの、
プログラムを書くためのエディタが起動するので、
下記のプログラムをコピーして貼り付けます

using UnityEngine;

public class BlockController : MonoBehaviour
{
    private void OnCollisionEnter( Collision collision )
    {
        Destroy( gameObject );
    }
}

今回はプログラムの解説は割愛させていただきます
プログラムを貼り付けたら、Ctrl + S を押すなどしてプログラムファイルを保存します

f:id:baba_s:20180116165525p:plain

Unity に戻り、「BlockController」を「Block」にドラッグします

f:id:baba_s:20180116184937p:plain

これで、「Block」に「BlockController」を反映することができます

f:id:baba_s:20180116165816g:plain

エディタ上部の再生ボタンを押してゲームを再生してみると、
ブロックにボールがぶつかったら、ブロックが破壊されることが確認できます
確認できたらエディタ上部の再生ボタンを押してゲームを停止します

ブロックの配置

ブロックを1つ作成することができたので、
このブロックを複製して並べていきます

f:id:baba_s:20180116185039p:plain

複製する前に、「Block」を選択して、
「Position」(位置)の入力欄にすべて「0」と入力します

f:id:baba_s:20180116170144p:plain

次に、Unity メニューの「GameObject>Create Empty」を選択します

f:id:baba_s:20180116170225p:plain

作成されたオブジェクトを選択して F2 を押して「Blocks」と名前を付けます

f:id:baba_s:20180116185215p:plain

続けて、「Blocks」を選択した状態で
「Position」(位置)の入力欄にすべて「0」と入力します

f:id:baba_s:20180116170500p:plain

そして、「Block」を、作成した「Blocks」にドラッグします
すると、上記のスクリーンショットのように、オブジェクトが親子関係になります

「Create Empty」で作成したオブジェクトはゲーム画面には表示されないですが、
このように、他のオブジェクトをフォルダのように管理することができます

f:id:baba_s:20180116190751p:plain

「Block」を「Blocks」にドラッグしたら、
「Block」を選択した状態で Ctrl + D を5回押します

f:id:baba_s:20180116190758p:plain

すると、ブロックが5つ複製されます

f:id:baba_s:20180116190914p:plain

そして、複製したそれぞれのブロックを選択して、
「Position」(位置)の「X」の入力欄に下記の値を入力していきます

名前 Position X
Block -7.5
Block (1) -4.5
Block (2) -1.5
Block (3) 1.5
Block (4) 4.5
Block (5) 7.5

f:id:baba_s:20180116191101p:plain

その後、「Blocks」を選択して、
「Position」(位置)の「Z」の入力欄に「28」と入力します

f:id:baba_s:20180116191227p:plain

これで、ブロックを一列並べることができました

f:id:baba_s:20180116191301p:plain

さらに、「Blocks」を選択した状態で Ctrl + D を4回押します

f:id:baba_s:20180116191514p:plain

すると、ブロックを一列ごと複製することができます

f:id:baba_s:20180116191525p:plain

そして、複製した「Blocks」を選択して、
「Position」(位置)の「Z」の入力欄に下記の値を入力していきます

名前 Position Z
Blocks (1) 26
Blocks (2) 24
Blocks (3) 22
Blocks (4) 20

f:id:baba_s:20180116191635p:plain

これで、ブロックを格子状に並べることができました

f:id:baba_s:20180116194356g:plain

エディタ上部の再生ボタンを押してゲームを再生してみると、
配置したブロックにボールがぶつかると、ブロックが破壊できることが確認できます
確認できたらエディタ上部の再生ボタンを押してゲームを停止します

これで、ブロックの配置が完了しました

ゲームオーバーの実装

ブロックの配置が完了したので、次はゲームオーバーを実装していきます

f:id:baba_s:20180116145500p:plain

Unity メニューの「Assets>Create>C# Script」を選択します

f:id:baba_s:20180116191828p:plain

作成したプログラムファイルに「BottomWallController」という名前を付けます

f:id:baba_s:20180116194726p:plain

「BottomWallController」をダブルクリックすると、
お使いの環境に合わせて Visual Studio や MonoDevelop などの、
プログラムを書くためのエディタが起動するので、
下記のプログラムをコピーして貼り付けます

using UnityEngine;

public class BottomWallController : MonoBehaviour
{
    private void OnCollisionEnter( Collision collision )
    {
        Destroy( collision.gameObject );
    }
}

f:id:baba_s:20180116191938p:plain

Unity に戻り、「BottomWallController」を「Cube」にドラッグします

f:id:baba_s:20180116192027p:plain

これで、「Cube」に「BottomWallController」を反映することができます

f:id:baba_s:20180116192223g:plain

エディタ上部の再生ボタンを押してゲームを再生してみると、
ボールが下の壁にぶつかったら消えることが確認できます
確認できたらエディタ上部の再生ボタンを押してゲームを停止します

これで、ゲームオーバーの実装が完了しました

Ctrl + S を押して、ここまでの作業内容を保存しておきましょう
次回は、サウンドの追加と色の変更を行っていきます

次のチュートリアル