Mobil ve yoğun animasyonlu projelerde GC ve FPS’i DOTween ile PrimeTween karşılaştırması.
Unity’de Animasyon Performansı: DOTween mi, PrimeTween mi?
Bu yazının orijinali serapkerem.software adresinde yayınlanmıştır. 👉 https://serapkerem.software/unityde-animasyon-performansi-dotween-mi-primetween-mi/

Unity’de animasyon denince çoğumuzun aklına ilk olarak DOTween gelir. Yıllardır kullanılan, güçlü ve esnek bir araç. Ancak özellikle mobil projelerde veya aynı anda çok sayıda obje animasyonu olan senaryolarda, animasyonların performans maliyeti daha görünür hâle geliyor.
Bu yazıda:
- Animasyonların performansı neden etkilediğini,
- Garbage Collection (GC) ile animasyonlar arasındaki ilişkiyi,
- PrimeTween’in neden “zero-allocation” odaklı bir çözüm sunduğunu,
- DOTween ile temel farklarını,
temel seviyede ama teknik bir bakışla ele alacağız.
Amaç:
“Hangisi daha iyi?” tartışması değil, “Hangi araç hangi problem için daha doğru?” sorusuna net cevaplar verebilmek.

Animasyon Performansı Neden Sorun Olur?
Unity’de performans problemleri çoğu zaman tek bir büyük hatadan değil, çok sayıda küçük maliyetin üst üste binmesinden kaynaklanır.
Animasyon tarafında bu maliyetler genellikle şunlardan gelir:
- Runtime sırasında heap allocation
- Bu allocation’ların birikmesi
- Garbage Collection’ın devreye girmesi
- GC sırasında frame’in kısa süreli durması
Bu duraksamalar özellikle:
- Mobil cihazlarda
- Match-3, grid, conveyor, hyper-casual gibi çok sayıda objenin hareket ettiği oyunlarda net şekilde hissedilir.
FPS düşüşü yerine çoğu zaman oyuncu şunu hisseder:
“Oyun takılıyor gibi ama nedenini anlayamıyorum.”

Garbage Collection (GC) Kısa ve Net
GC’yi basitçe şöyle düşünebiliriz:
- Oyun çalışırken heap üzerinde geçici objeler oluşur
- Bu objeler birikir
- GC devreye girer ve temizler
- Temizlik sırasında ana thread kısa süreliğine durur
Bu durma:
- 16 ms yerine 25–30 ms frame süreleri
- Mikro takılmalar
- Özellikle animasyon sırasında hissedilen jitter olarak geri döner.
İşte PrimeTween’in ana iddiası tam burada başlıyor.

PrimeTween Nedir?
PrimeTween, Unity için geliştirilmiş, runtime sırasında heap allocation yapmayan (zero-allocation) bir tween kütüphanesidir.
Temel hedefi:
- GC üretmeden
- Stabil FPS ile
- Özellikle gameplay animasyonlarını güvenli şekilde çalıştırmak
Temel Fark: DOTween vs PrimeTween
- En önemli fark, kütüphanelerin tween’leri nasıl temsil ettiğidir.
Yapısal Karşılaştırma

Bu fark küçük gibi görünür ama çok sayıda animasyon söz konusu olduğunda belirleyici olur.

Basit Hareket Örneği
DOTween
transform.DOMoveX(10f, 1f);
Bu kod:
- Bir tween objesi oluşturur
- Heap allocation yapabilir
- GC riski taşır
Tek bir kullanımda sorun değildir. Ama bu kodu yüzlerce obje için, sürekli çağırdığınızda maliyet birikir.
PrimeTween
Tween.PositionX(transform, 10f, 1f);
Bu kod:
- Allocation yapmaz
- GC üretmez
- Fire-and-forget çalışır
Aynı işi yapar, ama runtime maliyeti farklıdır.
Completion Callback Farkı
Performansın genellikle gözden kaçan bir diğer noktası: closure allocation.
DOTween
transform.DOMoveX(10f, 1f)
.OnComplete(() => OnMoveCompleted());
Bu kullanım:
- Lambda oluşturur
- Closure allocation riski taşır
- GC baskısını artırabilir
PrimeTween
Tween.PositionX(transform, 10f, 1f)
.OnComplete(this, t => t.OnMoveCompleted());
Bu yaklaşım:
- Allocation yapmaz
- Closure üretmez
- GC tetiklemez
Aynı davranış, farklı maliyet.
“Tek Kullanımlık Tween” Felsefesi
PrimeTween’de tween’ler:
- Oluşturulur
- Çalışır
- Biter
- Ve yeniden kullanılmaz
Bu bilinçli bir tasarım kararıdır.
Avantajları:
- Tween cache’leme ihtiyacı yok
SetAutoKill(false)gibi ayarlara gerek yokOnDestroyiçinde manuelKill()zorunluluğu yok- Null reference ve lifecycle hataları azalır
Bu model özellikle:
- Gameplay kodlarında
- State karmaşası olan sistemlerde daha güvenli bir yapı sunar.
Inspector ve Editör Tarafı
PrimeTween sadece kod tarafına odaklanmaz.
TweenSettings<T> gibi yapılar sayesinde:
- Duration
- Ease
- Delay
- Loop
- Direction
gibi değerler Inspector üzerinden ayarlanabilir.
Bu da:
- Magic number kullanımını azaltır
- Tasarımcıların animasyon tweak’lerini doğrudan yapabilmesini sağlar
- Kod–tasarım bağımlılığını düşürür-
Ancak bu özellik, performans kazanımının yanında gelen bir bonus olarak görülmelidir.

Ne Zaman PrimeTween?
PrimeTween özellikle şu senaryolarda öne çıkar:
- Mobil oyunlar
- Match-3, grid, conveyor sistemleri
- Aynı anda çok sayıda gameplay objesi
- FPS stabilitesinin kritik olduğu projeler
Ne Zaman DOTween Hâlâ Mantıklı?
DOTween hâlâ çok güçlüdür ve şu alanlarda avantajlıdır:
- Karmaşık UI animasyonları
- Menü geçişleri
- Timeline hissi veren sekanslar
- Editör araçları ve prototipleme
Bu yüzden konu:
“DOTween mi, PrimeTween mi?” değil,
“Hangi animasyon nerede çalışıyor?” sorusudur.
Sonuç
PrimeTween:
- Zero-allocation yaklaşımı
- GC üretmeyen yapısı
- Basit ama bilinçli API tasarımı
ile performans odaklı animasyonlar için güçlü bir alternatiftir.
DOTween ise:
- Esnekliği
- Olgun ekosistemi
- UI ve sekans tarafındaki gücü
ile hâlâ çok değerli bir araçtır.
İyi bir Unity geliştiriciyi ayıran şey:
- Tek bir araca bağlı kalmak değil, Doğru aracı doğru problemde kullanabilmektir.
메타데이터
- post_id
- b607e626d63f
- slug
- mobil-ve-yoğun-animasyonlu-projelerde-gc-ve-fpsi-dotween-ile-primetween-karşılaştırması-b607e626d63f
- url
- https://medium.com/@serapkerem19/mobil-ve-yo%C4%9Fun-animasyonlu-projelerde-gc-ve-fpsi-dotween-ile-primetween-kar%C5%9F%C4%B1la%C5%9Ft%C4%B1rmas%C4%B1-b607e626d63f
- canonical_url
- https://medium.com/@serapkerem19/mobil-ve-yo%C4%9Fun-animasyonlu-projelerde-gc-ve-fpsi-dotween-ile-primetween-kar%C5%9F%C4%B1la%C5%9Ft%C4%B1rmas%C4%B1-b607e626d63f
- author_url
- https://medium.com/@serapkerem19
- status
- ok
- fetched_at
- 2026-06-09 15:37:30