【Unity2Dチュートリアル】爆弾を避けよ!~8~

前回の爆弾を避けよ!~7~の続きです。

【Bakudan】を量産していきます。いろんなところから落ちてくるようにします。

目次

前提条件

ゲームの終了時

【Bakudan】が落ちてきて【Player】と接触すると、【Player】が破壊されるまでですね。

この記事の「爆弾を避けよ!」の作成の流れ

  • 量産する説明
  • 【Bakudan】を量産させるスクリプトを実行する空のオブジェクトを生成する
  • 【Bakudan】のPrefabを作る
  • 【BakudanGenerator】スクリプトを作成、開く
  • 【BakudanGenerator】スクリプトに記述する
  • 【BakudanGenerator】オブジェクトに【BakudanGenerator】スクリプトをアタッチする

こちらを行っていきます。

量産する説明

【Bakudan】を量産して、さまざな場所から落ちてくるにします。そこでわたしたちは【BakudanGenerator】という工場をつくっていきます。

工場に必要なものは3つあります。空のオブジェクトと設計図とスクリプトです。空のオブジェクとスクリプトと設計図があることで、量産することができます。

今回の【Bakudan】を量産する例で表します。

空のオブジェクト BakudanGeneratorオブジェクト
設計図 BakudanPrefab
スクリプト BakudanGeneratorスクリプト

この3つを作って、【Bakudan】を量産する工場を作成していきます。

あくまで今回のオブジェクトを量産する方法は一例です。

空の【BakudanGenerator】オブジェクトを作成する

Unityで空の【BakudanGenerator】オブジェクトを作成する

【Hierarchy】→【Create】→【Create Empty】→【右クリック】→【名前をBakudanGenerator】

空のオブジェクトを作成していきます。

【Bakudan】の設計図【BakudanPrefab】を作る

UnityでPrefabを作る

【Hierarchy】→【BakudanをProjectウィンドウにドラッグ&ドロップ】→【右クリック】→【Rename】→【BakudanPrefabという名前にする】

HierarchyからProjectウィンドウにドラッグ&ドロップすると【Prefab】という設計図ができます。

Projectウィンドウの【BakudanPrefab】を見てください。他のオブジェクトと色が違いますよね。これがPrefab(設計図)である証拠です。

Hierarchy上から【BakudanPrefab】を消そう

Unityでオブジェクトを削除する

【Hierarchy】→【BakudanPrefab】→【右クリック】→【Delete】

【Hierarchy】→【BakudanPrefab選択】→【Deleteキー】

あとで量産するので今のHierarchy上にある【BakudanPrefab】は削除しちゃいましょ。

なんかせっかく作ったのにせつなくなります(T_T)。ただ設計図があるので、いつでも復元できます。

補足:1つ前の手順に戻りたいときは【CTRL+Z】

【CTRL + Z】で1つ前の作業に戻ることができます。

【BakudanGenerator】スクリプトを作成、開く

Unityでスクリプトを作成、開く

【Projectウィンドウ】→【Scriptsフォルダ】→【Create】→【C# Script】→【BakudanGeneratorという名前にする】→【ダブルクリックして開く】

スクリプトを作成して、開きましょう。ダブルクリックすることで開くことができます。

【BakudanGenerator】スクリプトに記述する

BakudanGenerator.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BakudanGenerator : MonoBehaviour
{

    public GameObject BakudanPrefab;
    float span = 1.0f;
    float delta = 0;

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        this.delta += Time.deltaTime;
        if (this.delta > this.span)
        {
            this.delta = 0;
            GameObject Bakudan = Instantiate(BakudanPrefab) as GameObject;
            int x = Random.Range(-7, 7);
            Bakudan.transform.position = new Vector3(x, 4, 0);
        }
    }
}

GameObject Bakudan = Instantiate(BakudanPrefab) as GameObject;

【BakudanPrefab】という設計図を作りましたよね。その設計図から実物(インスタンス)を作ったもの【Bakudan】変数にいれてます。

 

 int x = Random.Range(-7, 7);

【x】変数に-7以上7未満の数値をいれています。もっと詳しくしりたい人はUnityで乱数(ランダムの値)を生成する【Random.Range】メソッドの使い方をみてね。

 

 Bakudan.transform.position = new Vector3(x, 4, 0);

【Bakudan】変数にいれたオブジェクトの位置をX軸はxの値、Y軸は4の値、Z軸は0の値に設定しています。

xの値はランダムですから、これによって、様々な場所から【Bakudan】が落ちてきます。

【BakudanGenerator】オブジェクトに【BakudanGenerator】スクリプトをアタッチする

Unityでスクリプトをアタッチする

【Projectウィンドウ】→【BakudanGeneratorスクリプトをHierarchy上のBakudanGeneratorにドラッグ&ドロップする】

まず空のオブジェクトである【BakudanGenerator】とスクリプトである【GameGenerator】スクリプトを紐付けます。

【BakudanGenerator】オブジェクトに【BakudanPrefab】設計図をわたす

Unityでオブジェクトに設計図を渡す

【Hierarchy】→【BakudanGeneratorオブジェクトを選択】→【ProjectウィンドウにあるBakudanPrefabをBakudan Prefabの欄にドラッグ&ドロップする】

ゲームを実行してみよう

Unityでゲームを実行する

工場が完成ですね。

おわりに

Unityでサンプルゲーム終了後

では次の爆弾を避けよ!~9~に行きましょう。

あわせて読みたい
【Unity2Dチュートリアル】爆弾を避けよ!~9~ 前回の爆弾を避けよ!~8~の続きです。 UIである右上のリトライボタンを作成していきます。 【前提条件】 この状態です。爆弾がランダムで落ちてくる状態です。 【】 ...
Unityサンプルゲームの「爆弾を避けよ!」の8

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメント一覧 (1件)

  • 【Hierarchy】→【BakudanGeneratorオブジェクトを選択】→【ProjectウィンドウにあるBakudanPrefabをBakudan Prefabの欄にドラッグ&ドロップする】 ここでBakudan Prefabの欄が表示されないのでドラッグアンドドロップができず困ってます。考えられる原因とかありますでしょうか?

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次