#unity
#object-pooling
#kPooling
Unity kPooling paketinin kullanımı
2021-05-27 · BURAK ERGÜL · 1 MIN
Object pooling, sahnede sürekli yaratılıp yok edilen nesnelerin maliyetini ortadan kaldırmanın en temiz yolu. Bu yazıda kPooling paketini sonsuz koşu prototipime nasıl entegre ettiğimi adım adım anlatacağım.
Önce havuzu ısıtıyoruz — ilk frame'de spawn maliyeti ödememek için WarmUp() çağrısı yeterli:
ObstacleSpawner.cs
1
2
3
4
5
6
var pool = KPoolingManager.Instance.GetPool<Obstacle>();
pool.WarmUp(64); class=class="text-[var(--color-syntax-string)]">"text-[var(--color-syntax-comment)]">// pre-warm, GC sıfır
var obstacle = pool.Rent(spawnPoint.position);
obstacle.OnDespawn(() => pool.Return(obstacle));
class=class="text-[var(--color-syntax-string)]">"text-[var(--color-syntax-comment)]">// ring-buffer: Rent ↔ Return, alloc yok
Dikkat edilmesi gereken nokta: havuz boyutunu sahnenin en yoğun anına göre değil, ortalamasına göre seçip taşmayı Expand stratejisine bırakmak...