プログラミング”ド素人”のUnity奮闘記

プログラミングが全く分からない超絶初心者がUnityでゲームを作るために日々奮闘している所です

【Unity】InvokeRepeatingについて

今回は、InvokeRepeatingについて書いていきたいと思います。

参照記事はおなじみ『おもちゃラボ』様です。

nn-hokuson.hatenablog.com

 

実際に記入したスクリプトを見ていきましょう。

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でも可。