前回の爆弾を避けよ!~7~の続きです。
【Bakudan】を量産していきます。いろんなところから落ちてくるようにします。
前提条件
【Bakudan】が落ちてきて【Player】と接触すると、【Player】が破壊されるまでですね。
この記事の「爆弾を避けよ!」の作成の流れ
- 量産する説明
- 【Bakudan】を量産させるスクリプトを実行する空のオブジェクトを生成する
- 【Bakudan】のPrefabを作る
- 【BakudanGenerator】スクリプトを作成、開く
- 【BakudanGenerator】スクリプトに記述する
- 【BakudanGenerator】オブジェクトに【BakudanGenerator】スクリプトをアタッチする
こちらを行っていきます。
量産する説明
【Bakudan】を量産して、さまざな場所から落ちてくるにします。そこでわたしたちは【BakudanGenerator】という工場をつくっていきます。
工場に必要なものは3つあります。空のオブジェクトと設計図とスクリプトです。空のオブジェクとスクリプトと設計図があることで、量産することができます。
今回の【Bakudan】を量産する例で表します。
空のオブジェクト | BakudanGeneratorオブジェクト |
設計図 | BakudanPrefab |
スクリプト | BakudanGeneratorスクリプト |
この3つを作って、【Bakudan】を量産する工場を作成していきます。
あくまで今回のオブジェクトを量産する方法は一例です。
空の【BakudanGenerator】オブジェクトを作成する
【Hierarchy】→【Create】→【Create Empty】→【右クリック】→【名前をBakudanGenerator】
空のオブジェクトを作成していきます。
【Bakudan】の設計図【BakudanPrefab】を作る
【Hierarchy】→【BakudanをProjectウィンドウにドラッグ&ドロップ】→【右クリック】→【Rename】→【BakudanPrefabという名前にする】
HierarchyからProjectウィンドウにドラッグ&ドロップすると【Prefab】という設計図ができます。
Projectウィンドウの【BakudanPrefab】を見てください。他のオブジェクトと色が違いますよね。これがPrefab(設計図)である証拠です。
Hierarchy上から【BakudanPrefab】を消そう
【Hierarchy】→【BakudanPrefab】→【右クリック】→【Delete】
か
【Hierarchy】→【BakudanPrefab選択】→【Deleteキー】
あとで量産するので今のHierarchy上にある【BakudanPrefab】は削除しちゃいましょ。
なんかせっかく作ったのにせつなくなります(T_T)。ただ設計図があるので、いつでも復元できます。
補足:1つ前の手順に戻りたいときは【CTRL+Z】
【CTRL + Z】で1つ前の作業に戻ることができます。
【BakudanGenerator】スクリプトを作成、開く
【Projectウィンドウ】→【Scriptsフォルダ】→【Create】→【C# Script】→【BakudanGeneratorという名前にする】→【ダブルクリックして開く】
スクリプトを作成して、開きましょう。ダブルクリックすることで開くことができます。
【BakudanGenerator】スクリプトに記述する
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】スクリプトをアタッチする
【Projectウィンドウ】→【BakudanGeneratorスクリプトをHierarchy上のBakudanGeneratorにドラッグ&ドロップする】
まず空のオブジェクトである【BakudanGenerator】とスクリプトである【GameGenerator】スクリプトを紐付けます。
【BakudanGenerator】オブジェクトに【BakudanPrefab】設計図をわたす
【Hierarchy】→【BakudanGeneratorオブジェクトを選択】→【ProjectウィンドウにあるBakudanPrefabをBakudan Prefabの欄にドラッグ&ドロップする】
ゲームを実行してみよう
工場が完成ですね。
おわりに
では次の爆弾を避けよ!~9~に行きましょう。
コメント
コメント一覧 (1件)
【Hierarchy】→【BakudanGeneratorオブジェクトを選択】→【ProjectウィンドウにあるBakudanPrefabをBakudan Prefabの欄にドラッグ&ドロップする】 ここでBakudan Prefabの欄が表示されないのでドラッグアンドドロップができず困ってます。考えられる原因とかありますでしょうか?