【Unity C# スクリプト】オブジェクトを動的に生成

手順は以下の通り

1. 生成したいオブジェクトのプレファブを作成
2. オブジェクトを動的生成するスクリプトを作成し、なんらかのコントールオブジェクトにアタッチ
3. スクリプトのコードは以下のような感じ

public class scr_gameObject : MonoBehaviour {
  public Transform prefab;
  void Update () {
    if( Input.GetKey("space") ) {
      Instantiate(prefab, new Vector3(0f, 10f, 0f), Quaternion.identity);
    }
  }
}

最初にプレファブオブジェクト(への参照)を宣言する。
この変数と実際のプレファブとの紐付けは Unity エディタで行なう。

temp

注意点としては、スクリプトではなく、コントロールオブジェクトをインスペクタで見て、そこの prefab にドロップするという点だ。
スクリプトをインスペクターでみても prefab が表示されるが、そこにドロップしても期待したようには動作しない。

あとは、update() でキーが押されたときなどに、Instantiate() を用いて、プレファブからオブジェクトを生成する。
第2引数は生成位置、第3引数は回転行列を指定する。
回転しない場合は、例の用に「Quaternion.identity」を指定する。