GameObjectの生成はシューティングやらアクションゲームなどに出現するアイテムや自弾生成などでよく使います。
例えば特定のポイントに自キャラがい続けたらずっと生成し続けたりアイテムドロップを生成させたり使いどころはたくさんあります。
ではいったいどうやって生成するのか
GameObject の生成のやり方
まず生成したいオブジェクトをPurefab化します。
Assetsなどに対象のものをドラッグ&ドロップで簡単にPrefab化することができます。
次に適当なスクリプトへGameObject を追記しGameObject を取得させます。
そこの入れ物にPrefab化したGameObject を入れ準備完了。
Start関数などに以下のコードを書きます。
public GameObject obj;
void Start()
{
Instantiate(obj,transform.position,transform.rotetion);
}
こうすることでゲーム開始時にGameObjyectが生成することができるようになります。
Start関数ではなく関数を作って特定のキーを押したら生成するとかをやればその都度生成させることができるようになります。
繰り返してGameObjectを生成させる方法
次は自動でGameObjectを繰り返して生成させる方法。
それはInvokeRepeatingを使います。
使い方は
void Start()
{
InvokeRepeating("Repeating",1f,5f);
}
void Repeating()
{
Instantiate(obj,transform.position,transform.rotetion);
}
一度関数を作って実行したいことを書きInvokeRepeatingの中にやりたいことを書きます。
これの中身は(関数名、何秒後に、何秒ごとに);という意味になります。
つまり上記の意味はRepeating関数を1秒後に5秒ごとに実行という意味になります。
ここで注意なのはStart関数など一度だけやるものに書いておかないと毎回呼び込まれるのですごく重くなります。
例えばUpdate関数に書くと毎フレーム呼び込まれることになるのでものすごく重くなってしまうので避けましょう。
この繰り返し処理はコルーチンなどで実装するほうがより細かく指定できるのであくまでちょっとした処理のときに使うことを推奨いたします。
まとめ
GameObjectの生成はゲーム作成で使用頻度が多いものなのでぜひ習得しましょう。