A R D A B A Y A R

Loading

Unity’de Performans Sanatı: Temel Optimizasyon Teknikleri

Unity’de Performans Sanatı: Temel Optimizasyon Teknikleri

Unity’de Performans Sanatı: Temel Optimizasyon Teknikleri

Unity, erişilebilirliği ve esnek yapısı sayesinde bağımsız geliştiricilerden AAA stüdyolara kadar geniş bir kitle tarafından tercih edilen bir oyun motoru. Ancak oyun geliştiriciler için en zorlu konulardan biri her zaman olduğu gibi stabil ve yüksek FPS değerine ulaşmak. Bir oyun ne kadar iyi tasarlanmış olursa olsun, performans sorunları yaşadığında oyuncu deneyimi ciddi şekilde düşer.

Bu makalede Unity’da gerçek bir performans ustalığı için kullanılan teknikleri, pratik optimizasyon yöntemlerini ve profesyonellerin uyguladığı FPS artırma yöntemlerini adım adım ele alacağız.


1. Performansın Temel Taşı: Profiler’ı Doğru Okumak

Bir oyunu optimize etmenin ilk adımı, sorunun nerede olduğunu anlamaktır. Unity Profiler, CPU ve GPU tarafındaki darboğazları net bir şekilde görmenizi sağlar.

Profiler’da Dikkat Edilecek Ana Noktalar

  • CPU Usage: Scriptten kaynaklanan yükü, GC (Garbage Collection) tetiklemelerini ve Update/FixedUpdate yoğunluklarını gösterir.
  • GPU Usage: Post-processing, ışıklandırma, çizim yükü ve shader karmaşıklığı burada ortaya çıkar.
  • Rendering: Draw Call sayısı, SRP Batcher, batching etkinliği ve shader pass sayıları burada görünür.
  • Memory: Texture ve mesh boyutları, GC yükü ve bellek sızıntıları için hayati önem taşır.

Profiler’ı iyi okumayan biri optimize edemez. Çünkü rastgele optimizasyon yapmak çoğu zaman hiçbir işe yaramaz, hatta proje büyüdükçe zarar bile verir.

Profiler ekranı

2. Draw Call Yönetimi: Render Performansının Kalbi

Unity’da özellikle mobil platformlarda en çok FPS kaybettiren konulardan biri aşırı Draw Call üretimidir.
Draw Call = GPU’ya verilen çizim komutu demektir.

Draw Call Nasıl Azaltılır?

  • Static Batching: Sabit objeleri tek bir mesh gibi işler.
  • Dynamic Batching: Küçük ve benzer materyalli objeleri birleştirir (ancak sınırlıdır).
  • SRP Batcher: URP/HDRP kullanan projelerde büyük FPS kazandırır.
  • Atlas Kullanımı: UI, sprite veya texture atlasları Draw Call sayısını azaltır.
  • Mesh Combine: Birden fazla çevresel objeyi tek bir mesh haline getirerek işlem sayısını düşürür.

Özellikle URP ile birlikte SRP Batcher’ın etkin olması, sahnede yüzlerce materyal olsa bile yükü dramatik şekilde azaltabilir.

Batches - Draw Call

3. Işıklandırma ve Gölge Yönetimi

Işıklandırma GPU’nun en çok zorlandığı konulardandır. Özellikle gerçek zamanlı gölgeler mobilde tam bir katildir.

Performanslı Işık Ayarları

  • Gerçek zamanlı ışık sayısını minimumda tutun.
  • Baked lighting kullanın (hem mobil hem PC için çok büyük fark yaratır).
  • Shadow Distance değerini aşırı yüksek tutmayın.
  • Shadow Resolution cihaz seviyesine göre ayarlanmalı.
  • Sahnede aşırı sayıda Point Light + Shadow kullanmayın.

Doğru ışık kullanımı, FPS’i artırırken görsel kaliteyi de korur.

Baked Lighting gerçeğe daha yakın görsellik sunar

4. Fizik ve Collider Optimizasyonları

Fizik motoru hem CPU hem GPU’ya yük bindirir.

Optimizasyon Önerileri

  • Gereksiz Rigidbody kullanımından kaçının.
  • Mesh Collider yerine Box/Sphere/Capsule Collider tercih edin.
  • Physics timestep değerini gereksiz yere küçültmeyin.
  • Karmaşık fizik simülasyonlarını alt seviyeli cihazlar için azaltın.
  • Trigger kullanılan sahnelerde collider karmaşıklığı en aza indirilmeli.

Basit bir değişiklik bile fizik performansını ciddi artırır.

Rigidbody ve Colliderlar

5. Occlusion Culling: Görünmeyeni Çizmemek Performansın En Saf Hâlidir

Unity’nin Occlusion Culling sistemi, kamera tarafından görülmeyen objelerin GPU tarafından işlenmesini engelleyerek büyük performans kazancı sağlar. Özellikle kapalı alanlarda, şehir ortamlarında, çok objeli sahnelerde ve FPS oyunlarında fark dramatik boyuttadır.

Occlusion Culling Ne Zaman Kullanılmalı?

  • Sahne çok fazla bina, duvar, oda veya koridor içeriyorsa
  • Kamera çoğunlukla engel arkası objeleri göremiyorsa
  • Açık dünya değil, daha çok yarı kapalı tasarımlar varsa
  • Mobilde GPU yükü yüksekse
  • Draw Call sayısı fazla olan sahnelerde

Doğru Kullanım İçin İpuçları

  • Sahnedeki statik objeleri Static → Occluder / Occludee olarak işaretleyin.
    • Occluder Static: Obje başkalarını saklayabilir (duvar, bina, kaya).
    • Occludee Static: Obje saklanabilir (mobilya, küçük objeler vb.).
  • Pencere, cam, yarı saydam duvar gibi objeleri Occluder olarak işaretlemeyin.
  • Occlusion verisini “Bake” ettikten sonra kamerayı hareket ettirerek sahnede nelerin gizlendiğini test edin.
  • Fazla karmaşık sahnelerde Occlusion veri boyutu artabilir; gerekirse çözünürlüğü düşürün.

Performans Faydaları

  • GPU’nun çizim listesinden onlarca hatta yüzlerce obje çıkarılır.
  • Draw Call sayısı tek başına %20–50 arasında düşebilir.
  • Özellikle mobil cihazlarda ciddi FPS artışı sağlar.
  • Kapalı ortam oyunlarında çoğu zaman en fazla kazanç sağlayan optimizasyondur.
Occlusion Culling

Leave a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir