【Unity】InvokeRepeatingについて
今回は、InvokeRepeatingについて書いていきたいと思います。
参照記事はおなじみ『おもちゃラボ』様です。
実際に記入したスクリプトを見ていきましょう。
using UnityEngine;
using System.Collections;
public class RockGenerator : MonoBehaviour {
public GameObject rockPrefab;
//rockPrefabをRockGeneratorへ代入するための箱を作成するために宣言する。
箱にprojectビューのrockPrefabをドラッグ&ドロップで入れる事で、適用される。
void Start () {
InvokeRepeating ("GenRock", 1, 1);
}
//InvokeRepeatingは、数秒おきに自動的に物を生成するための関数。
InvokeRepeating("関数名,初回呼び出しまでの秒数,次回呼び出しまでの秒数)
GenRockの部分は、関数名なので自分で自由に設定してよい。
void GenRock () {
//GenRockは先ほど上記で指定した関数名。上記と連動している。
Instantiate (rockPrefab, new Vector3 (-2.5f + 5 * Random.value, 6, 0), Quaternion.identity);
}
}
//Instantiateは、Aという物をBの場所に出現させる時に使用する。
Instantiate(出現させたい物,生成位置,回転角)
new Vector3とすることで、(x方向の出現位置,y方向の出現位置,z方向の出現位置)を設定している。
x方向基準の位置を-2.5(Game画面上一番左端)、Random.valueでランダムに取り出した0.1~1.0の数値×5でx方向に出現させる位置を決定している。
5というのは画面全体の幅が5ということ。
基準の値が-2.5を始まりとしているから、Game画面の真ん中を0とすると、5を足すことでx方向Game画面全体に出現させることが出来る。
y方向は、6、z方向は2Dのゲームなので無し。0。
Quaternion.identityは、回転角を表しているのでtransform.rotationでも可。