【Unity】知識0から始めるUnity ~Part6~ ブロック崩しを作る4

更新日時:2019.07.29

カテゴリ:Unity

今回はブロック崩しの「ブロック」の部分をつくっていきます!!

※このプロジェクトは今日からはじめるUnityを参考にして作成しています。
今日からはじめるUnityと一緒にお読みください。

ブロックを作る

今回は「プレハブ」という機能を使うみたいです。
クラスの事ですね。

オブジェクト指向のプログラミングをしたことがない人は、参考サイトにわかりやすく図が載っているので、
そちらをご覧ください。

“Box”という名前のcubeオブジェクトを作成します。

Transformの値を変えて成形します。

プロジェクトタブで”Asset/”に”Prefabs”という名前でフォルダを作成します。

作成した”Prefabs”フォルダにBoxオブジェクトをドラッグアンドドロップします。
こんなことできるんですねw

これが”Box”のプレハブらしいです。

プレハブを作成したらBoxオブジェクトは削除して構わないそうです。
削除しちゃいましたw

”Asset/Scripts”に”BoxInit”というスクリプトを作成します。

コードを書きます。

 

追加した部分はここだけ

public GameObject boxObjPrefab;
public GameObject boxesObj;

void Awake(){
    for(int x = 0; x < 8; x++){
        for(int y = 0; y < 5; y++){
            GameObject g = Instantiate(boxObjPrefab,boxesObj.transform);
            g.transform.position = new Vector3((2f + (1f * y)),0.4f,(-4.2f + (1.2f * x)));
        }
    }
}

1行目,2行目 : ゲームオブジェクト型の変数を定義.
4行目 : AwakeとはStartよりも早く呼ばれるイベント関数です.Awakeに書くとStartよりも先に実行されます.
5行目~10行目 : for文で横8×縦5にBoxのPrefabをインスタンス化しています.
7行目 : 一旦”g”というGameObject型の変数を作りその中にPrefabをインスタンス化しています.boxesObj.transformというのはこの後説明します.
8行目 : 変数”g”にインスタンス化して入れられたゲームオブジェクトのtransform.positionの値をfor文を使って個々の座標に移動させる.

という事をやっているみたいです。

このスクリプトを”Hako”オブジェクトにアタッチします。

“Box Obj Prefab”と”Boxes Obj”が追加されています。

public GameObject boxObjPrefab;
public GameObject boxesObj

どうやらこれが反映されているみたいです。
引数に使えるんですね。

詳しい説明は参考サイトをご覧ください。

次にBox Obj Prefab にはBoxのPrefabをアタッチ、Boxes Obj には”Boxes”という空のオブジェクトを作成してアタッチします。

これで「play」をすると箱が沢山でてきます。

もう完全に見た目はブロック崩しですねw

Unityの教科書 Unity2019完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)

新品価格
¥2,808から
(2019/7/18 15:24時点)

ではまた次回!!

Leave a Comment

入力エリアすべてが必須項目です。メールアドレスが公開されることはありません。

内容をご確認の上、送信してください。

CAPTCHA