Instantiate, klonlama yapmamızı sağlayan bir fonksiyondur. Bir gameobjecti alır ve oyun başladığında veya kurala göre game objectimizi oyun içine klonlar. Her Instantiate objemiz RAM üzerinde yer açar bu sebepten dolayı her oluşturduğumuz objeyi daha sonrasında destroy etmemiz gerekir ya da object pooling yani var olan objeyi görünmez yapıp tekrardan kullanım sağlarken görünür hale getirmemiz gerekir.
Instantiate(Object prefab, Vector3 position, Quaternion rotation);
- Object : Kopyalanacak nesne.
- Vector3 : Dünyadaki X, Y, Z koordinatları.
- Quaternion : Nesnenin açısı
public GameObject projectilePrefab;
if (Input.GetKeyDown(KeyCode.Space))
{
Instantiate(projectilePrefab,transform.position,projectilePrefab.transform.rotation);
}

if (Input.GetKeyDown(KeyCode.Space))
{
//Debug.Log("process");
}
Input.GetKeyDown() : Belirtilen tuşa basıldığı ilk karede bir kez true döner. Tek seferlik işlemler için kullanılır. Örnek; zıplamak, envanteri açmak, oyunu durdurmak…

Instantiate(projectilePrefab, transform.position, projectilePrefab.transform.rotation);
- projectilePrefab : Oluşturulacak nesne. (Hangi mermiyi fırlatacağız?)
- transform.position : Nesnenin nerede oluşacağı. Kodun yazılı olduğu objenin o anki konumunu baz alır.
- projectilePrefab.transform.rotation : Nesnenin hangi açıyla oluşacağını belirtir. Burada merminin kendi orijinal açısı korunarak sahneye ekleniyor.
