| 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.