İçeriğe geç
Unity & Oyun Geliştirme

Instantiate ve Destroy Kullanımını Optimize Etme

Instantiate ve Destroy Kullanımını Optimize Etme konusunda temel mantığı, gerçek uygulama adımlarını, hata senaryolarını ve doğrulama yöntemlerini açıklayan uygulamalı rehber. Unity performans optimizasyonunda doğru sıra “ölç → dar boğazı belirle → tek değişiklik yap → yeniden ölç” şeklindedir. CPU, GPU, bellek ve…

20.09.2026 4 dk okuma Unity & Oyun Geliştirme

Konu, Amaç ve Beklenen Sonuç

Unity performans optimizasyonunda doğru sıra “ölç → dar boğazı belirle → tek değişiklik yap → yeniden ölç” şeklindedir. CPU, GPU, bellek ve yükleme sorunları birbirinden farklıdır. Pooling allocation/Instantiate maliyetini, texture import bellek ve bant genişliğini, LOD/occlusion görünür geometriyi, baked lighting ise gerçek zamanlı aydınlatma maliyetini azaltmaya yardımcı olabilir; ancak her teknik önce profil verisiyle gerekçelendirilmelidir.

Adım Adım Uygulama

1. Adım

1. Hedef cihazda Development Build ve Profiler bağlantısıyla temel ölçüm al; CPU, GPU, Memory ve Rendering modüllerini ayır.

2. Adım

2. Sorunun hangi frame ve hangi marker’da oluştuğunu belirle; ortalama FPS yerine spike ve frame-time dağılımına bak.

3. Adım

3. Sık Instantiate/Destroy edilen mermi/efekt gibi nesneleri ölç ve gerekiyorsa object pool kullan; havuz boyutunu gerçek yoğunluğa göre sınırla.

4. Adım

4. Texture import’ta Max Size, compression, mipmap ve platform override ayarlarını görsel kalite/hedef GPU’ya göre düzenle; kaynak dosya boyutu ile runtime bellek maliyetini karıştırma.

5. Adım

5. Renderer yükünde materyal geçişi, draw call, gölge, transparency ve overdraw noktalarını incele. 3D sahnede LOD Group ve occlusion uygun geometrilerde test edilebilir.

6. Adım

6. GC Alloc sütununda per-frame allocation üreten string/LINQ/collection veya geçici nesneleri belirle; körü körüne tüm kodu mikro-optimize etme.

7. Adım

7. Her optimizasyondan sonra aynı test sahnesi ve aynı cihazda önce/sonra ölçümünü kaydet.

Uygulamalı Örnek

Örneğin 200 merminin sık üretildiği sahnede önce Profiler’dan Instantiate/Destroy ve GC spike ölçülür. Sonra mermi havuzu uygulanır; aynı otomatik savaş senaryosu tekrar oynatılır. Kazanç yoksa havuz karmaşıklığını artırmak yerine asıl CPU/GPU darboğazına dönülür. Bu örneği kendi projenize uyarlarken değerleri ezberlemek yerine “Instantiate ve Destroy Kullanımını Optimize Etme” konusundaki aynı neden-sonuç ilişkisini koruyun.

Yaygın Hatalar ve Nedenleri

1. Editor FPS’ini gerçek cihaz performansı sanmak.

2. Tek bir FPS sayısına bakıp CPU/GPU ayrımı yapmamak.

3. Pooling’i her nesne için zorunlu sanmak.

4. Texture kalitesini ölçmeden tüm dokuları aşırı küçültmek.

5. Draw call sayısını tek başına kalite metriği sanmak.

6. Profiler olmadan “bu kod yavaş” varsayımı yapmak.

Son Kontrol ve Doğrulama

1. Aynı 60 saniyelik senaryoda önce/sonra frame time kaydı al. Sonuç “Instantiate ve Destroy Kullanımını Optimize Etme” için somut kabul ölçütü olarak kullanılmalıdır.

2. Memory Profiler/Profiler ile yükleme sonrası bellek tepesini gözle.

3. GC allocation’ın yoğun oyun anında tekrarlanıp tekrarlanmadığını kontrol et.

4. Isınma sonrası 5-10 dakikalık testte throttling etkisini gözlemle.

5. Düşük sınıf hedef cihazda görsel bozulma ile performans kazancını birlikte değerlendir.

Kısa Sonuç

Instantiate ve Destroy Kullanımını Optimize Etme için kaliteli sonuç, aracı veya ayarı bir kez kullanmaktan değil; doğru sorumluluğu seçip uygulamayı gerçek koşulda doğrulamaktan gelir.


Kaynaklar

Bu makaledeki teknik kavramları doğrulamak ve sürüme bağlı ayrıntıları kontrol etmek için aşağıdaki birincil/resmî kaynaklar kullanılmıştır. Yazılım arayüzleri ve platform gereksinimleri zamanla değişebileceği için özellikle yayın/build/SEO gibi güncel konularda son sürüm dokümantasyonunu kontrol edin.

1. Profiler Window – Unity Manual: https://docs.unity3d.com/cn/current/Manual/ProfilerWindow.html

2. Profiler API – Unity: https://docs.unity3d.com/cn/6000.0/ScriptReference/Profiling.Profiler.html

3. Memory in Unity – Manual: https://docs.unity3d.com/6000.0/Documentation/Manual/performance-memory-overview.html

4. Optimizing graphics performance – Unity: https://docs.unity3d.com/6000.0/Documentation/Manual/OptimizingGraphicsPerformance.html

5. Texture Import Settings – Unity: https://docs.unity3d.com/6000.0/Documentation/Manual/class-TextureImporter.html

6. LOD Group – Unity Manual: https://docs.unity3d.com/6000.0/Documentation/Manual/class-LODGroup.html

7. Occlusion Culling – Unity Manual: https://docs.unity3d.com/6000.0/Documentation/Manual/OcclusionCulling.html

8. Unity 6 Manual: https://docs.unity3d.com/6000.0/Documentation/Manual/index.html