Unityメモ

Unityで学んだことをメモするやつ

InstantiateでPrefub化したオブジェクトを動的に生成する

今回はInstantiateという関数を使って、Prefub化したオブジェクトを動的に生成する。

オブジェクトをPrefub化する

まずは適当な3Dオブジェクトを用意します。

用意したら、ドラッグ&ドロップでAssets内に移動します。 f:id:nullkun0803:20180411172941p:plain Hierarchy内の文字が青くなったらPrefub化された証拠です。

Instantiateを使ってプログラムからオブジェクトを生成する

まずは空のGameObjectを作ります。 f:id:nullkun0803:20180411173614p:plain このGameObjectに対して、スクリプトを設定して、Prefub化したオブジェクトを生成します。

public GameObject block;

void Start () {
    Instantiate(block);
}

まず、生成するオブジェクトについてですが、 publicをつけると、UI側から設定することが可能になります。

public GameObject block;

ドラッグ&ドロップでassets内のオブジェクトを設定すれば、読み込むことができます。 f:id:nullkun0803:20180411192609p:plain

あとはInstantiate関数に、設定したオブジェクトを引数として設定すれば完了です。

ちなみに、生成される場所は、Prefub化したオブジェクトに設定している通りのポジションになります。

Instantiate(original, , position , rotation);

第二引数、第三引数を設定すると、生成するオブジェクトの位置、回転を変更することが可能です。

docs.unity3d.com