original | An existing object that you want to make a copy of. |
position | Position for the new object. |
rotation | Orientation of the new object. |
Clones the object original
and returns the clone.
original
, places it at position
and sets the rotation to rotation
, then returns the cloned object.
This is essentially the same as using duplicate command (cmd-d) in Unity and then moving the
object to the given location.
If a game object, component or script instance is passed, Instantiate will clone the entire game object hierarchy, with all children cloned as well. Note that the active status of a GameObject will be passed to its clone, so if the original is inactive at the time of cloning, the new clone will initially be inactive too.See Also: In depth Prefab Instantiate discussion.// Instantiates 10 copies of prefab each 2 units apart from each other var prefab : Transform; for (var i : int = 0;i < 10; i++) { Instantiate (prefab, Vector3(i * 2.0, 0, 0), Quaternion.identity); }
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public Transform prefab; void Example() { int i = 0; while (i < 10) { Instantiate(prefab, new Vector3(i * 2.0F, 0, 0), Quaternion.identity) as Transform; i++; } } }
import UnityEngine import System.Collections public class Example(MonoBehaviour): public prefab as Transform def Example() as void: i as int = 0 while i < 10: (Instantiate(prefab, Vector3((i * 2.0F), 0, 0), Quaternion.identity) as Transform) i++
// Instantiate a rigidbody then set the velocity var projectile : Rigidbody; function Update () { // Ctrl was pressed, launch a projectile if (Input.GetButtonDown("Fire1")) { // Instantiate the projectile at the position and rotation of this transform var clone : Rigidbody; clone = Instantiate(projectile, transform.position, transform.rotation); // Give the cloned object an initial velocity along the current // object's Z axis clone.velocity = transform.TransformDirection (Vector3.forward * 10); } }
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public Rigidbody projectile; void Update() { if (Input.GetButtonDown("Fire1")) { Rigidbody clone; clone = Instantiate(projectile, transform.position, transform.rotation) as Rigidbody; clone.velocity = transform.TransformDirection(Vector3.forward * 10); } } }
import UnityEngine import System.Collections public class Example(MonoBehaviour): public projectile as Rigidbody def Update() as void: if Input.GetButtonDown('Fire1'): clone as Rigidbody clone = (Instantiate(projectile, transform.position, transform.rotation) as Rigidbody) clone.velocity = transform.TransformDirection((Vector3.forward * 10))
// Instantiate a prefab with an attached Missile script var projectile : Missile; function Update () { // Ctrl was pressed, launch a projectile if (Input.GetButtonDown("Fire1")) { // Instantiate the projectile at the position and rotation of this transform var clone : Missile; clone = Instantiate(projectile, transform.position, transform.rotation); // Set the missiles timeout destructor to 5 clone.timeoutDestructor = 5; } }
stub for C# example
stub for Boo example
original | An existing object that you want to make a copy of. |
Clones the object original
and returns the clone.
// Instantiates prefab when any rigid body enters the trigger. // It preserves the prefab's original position and rotation. var prefab : Transform; function OnTriggerEnter () { Instantiate (prefab); }
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public Transform prefab; void OnTriggerEnter() { Instantiate(prefab); } }
import UnityEngine import System.Collections public class Example(MonoBehaviour): public prefab as Transform def OnTriggerEnter() as void: Instantiate(prefab)
Generic version. See the Generic Functions page for more details.