はじめに
前回ステージを作成し、🦀の動きに合わせてカメラが追従するようにしました。
今回はゲームオーバー要員となる敵を一定時間経過ごとに増やしていきます。
前回の記事
やったこと
敵を増やすスクリプト作成を試すために、一定時間が経過するとランダムな場所から敵(🦐)が降ってくるようにしました。
🦐に対するスクリプトを変更する
現在エビには左横移動するスクリプトが当たっているため、空から降ってくるスクリプトに変更しました。
transform.Translate(0, -0.1f, 0);
if (transform.position.y < -5)
{
Destroy(gameObject);
}
敵を時間経過で増やす
前回ステージを作成した時と同じ要領でPrefabを作成します。
原本をプロジェクトウィンドウへ。
今回はステージを作成した時とは違い、一定時間経過でPrefabを増やさないといけません。
そのため、シーンビューに追加するのではなく、スクリプトをかきます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyGenerator : MonoBehaviour
{
public GameObject ebiPrefab;
float span = 2.0f;
float delta = 0;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
this.delta += Time.deltaTime;
if (this.delta > this.span)
{
this.delta = 0;
GameObject go = Instantiate(ebiPrefab) as GameObject;
Debug.Log(go);
int px = Random.Range(0, 20);
go.transform.position = new Vector3(px, 5, 0);
}
}
}
2秒間隔で🦐を生成しています。
スクリプトがかけたら、空のオブジェクトを作成し、そこにスクリプトをアタッチします。
このオブジェクトに敵生成スクリプトをアタッチすることによって、このオブジェクトは敵生成工場オブジェクトとして機能することになります。
オブジェクトの実態がないため発生したようです。
ここでオブジェクトを差し込む必要がありました。
ここには先ほどのスクリプトでpublic宣言をした変数が表示されます。
変数へプロジェクトウィンドウの🦐Prefabをドラッグアンドドロップで移動させて差し込みます。
エラーを解消して動かしてみると、一定時間でエビが空から降ってくるようになりました。
おわりに
一定時間経過でランダムな場所に敵を増殖させることができ、どんどんゲームっぽくなりました。
(🦐が空から降ってきてカオスですが)