public static Object Instantiate (Object original);
public static Object Instantiate (Object original, Transform parent);
public static Object Instantiate (Object original, Transform parent, bool worldPositionStays);
public static Object Instantiate (Object original, Vector3 position, Quaternion rotation);
public static Object Instantiate (Object original, Vector3 position, Quaternion rotation, Transform parent);

パラメーター

original コピーしたい既存オブジェクト
position 新規オブジェクトの位置 (デフォルト Vector3.zero)
rotation 新規オブジェクトの向き (デフォルト Quaternion.identity)
parent オブジェクトが親にする transform
worldPositionStays parent を指定するときに、元のワールドの位置が維持されるかどうか

戻り値

Object 元のオブジェクトのクローン

説明

オブジェクト original のコピーを返します

This function makes a clone of an object in a similar way to the Duplicate command in the editor. If you are cloning a GameObject, or something attached to a GameObject, then you can also optionally specify its position and rotation.

コンポーネント をクローンしている場合、それがアタッチされているゲームオブジェクトもクローンされます。

GameObjectComponent をクローンするとき、すべての子オブジェクト、コンポーネント、さらにそれらに付属するすべてのプロパティーもクローンされます。ただし、クローンされたオブジェクトの parent プロパティーは null となるため、元のオブジェクト階層には含まれません。ただ、オーバーロードしたメソッドや明示することによって、親を設定することも可能です。

クローン時のゲームオブジェクトのアクティブ状態が飛ばされるため、オリジナルが非アクティブであればクローンも非アクティブ状態で作成されます。

For an in-depth tutorial of Instantiate and its uses, visit: In depth Prefab Instantiate discussion.

この例では、プレハブオブジェクトのクローンのインスタンスを、X軸に沿った線上に10個作成します。

using UnityEngine;

public class InstantiateExample : MonoBehaviour { public GameObject prefab;

void Start() { for (int i = 0; i < 10; i++) Instantiate(prefab, new Vector3(i * 2.0f, 0, 0), Quaternion.identity); } }

Instantiate can also clone script instances directly. The game object hierarchy will be cloned and the cloned script instance will be returned.

オブジェクトをクローンした後、さらに GetComponent を使用して、クローンされたオブジェクトの特定コンポーネントのプロパティーを設定できます。

using UnityEngine;

public class InstantiateComponentExample : MonoBehaviour { // Instantiate a prefab with an attached Missile script public Missile missilePrefab;

void Start() { // Instantiate the missile at the position and rotation of this object's transform Missile clone = (Missile)Instantiate(missilePrefab, transform.position, transform.rotation); } }

public static T Instantiate (T original);

パラメーター

original クローンしたい T 型のオブジェクト

戻り値

T T 型のオブジェクト

説明

ジェネリック版も使用できます。詳細については Generic Functions を参照してください。

この例では Missile オブジェクトのインスタンスを再び作成していますが、Generics を使用しているので結果をキャストする必要がありません。

using UnityEngine;

public class InstantiateGenericsExample : MonoBehaviour { public Missile missile;

void Start () { Missile missileCopy = Instantiate<Missile>(missile); } }