Prefab nedir? Prefab variant ve nested prefab ne işe yarar?

Cevap

Prefab, yapılandırılmış bir GameObject'in (bileşenleri, değerleri, çocuk nesneleriyle birlikte) yeniden kullanılabilir şablonudur. Sahnedeki her kopyası (instance) prefab'a bağlıdır; prefab değişince tüm kopyalar güncellenir.

[SerializeField] GameObject enemyPrefab;

void Spawn(Vector3 pos)
{
    GameObject e = Instantiate(enemyPrefab, pos, Quaternion.identity);
}
  • Override: Bir instance üzerinde değer değiştirilirse sadece o kopya farklılaşır; diğer alanlar prefab'a bağlı kalır.
  • Nested prefab: Bir prefab başka prefab'ları içerebilir (ör. bir araç prefab'ı içinde tekerlek prefab'ı). Tekerlek güncellenince tüm araçlar etkilenir.
  • Prefab variant: Bir ana prefab'tan türeyen ve sadece farklılıklarını tutan prefab'tır. Ör. Enemy temelinden FastEnemy ve TankEnemy türetmek. Kalıtıma benzer.

Sık Instantiate / Destroy çağrısı GC ve performans maliyeti yaratır; mermi, efekt gibi sık oluşan nesneler için object pooling (Unity'de ObjectPool<T>) tercih edilir.

  1. Unity'de Update, FixedUpdate ve LateUpdate arasındaki fark nedir?KolayUnity & C#Game Dev
  2. GetComponent çağrılarını neden önbelleğe almalısınız?KolayUnity & C#Game Dev
  3. Rigidbody, physics layer'lar ve raycast nasıl çalışır? FixedUpdate neden önemlidir?OrtaUnity & C#Game Dev
  4. C# delegate, event ve UnityEvent arasındaki farklar nelerdir?OrtaUnity & C#Game Dev
  5. Unity'de garbage collection neden frame düşüşüne yol açar? Update içinde allocation'dan nasıl kaçınırsınız?ZorUnity & C#Game Dev
  6. C#'ta struct ile class arasındaki fark nedir? Value type ve reference type oyunda neden önemlidir?OrtaUnity & C#Game Dev

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle