Object.Instantiate
static function Instantiate(original: Object, position: Vector3, rotation: Quaternion): Object;
static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
static def Instantiate(original as Object, position as Vector3, rotation as Quaternion) as Object
Parameters

original An existing object that you want to make a copy of.
position Position for the new object.
rotation Orientation of the new object.
Description

Clones the object original and returns the clone.

Clones the object 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 is most commonly used to instantiate projectiles, AI Enemies, particle explosions or wrecked object replacements.
	// 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 can also clone script instances directly. The entire game object hierarchy will be cloned and the cloned script instance will be returned.
	// 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
After cloning an object you can also use GetComponent to set properties on a specific component attached to the cloned object.
static function Instantiate(original: Object): Object;
static Object Instantiate(Object original);
static def Instantiate(original as Object) as Object
Parameters

original An existing object that you want to make a copy of.
Description

Clones the object original and returns the clone.

This function preserves the position and rotation of the cloned object. This is essentially the same as using duplicate command (cmd-d) in Unity. If the object is a Component or a GameObject then entire game object including all components will be cloned. If the game object has a transform all children are 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 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)

Note that the Instantiate can clone any type of Object including scripts.
Description

Generic version. See the Generic Functions page for more details.