jobjectpool
Bezpieczna pula obiektów dla Unity — zmniejsz garbage collection w grach
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
JObjectPool to biblioteka do zarządzania pulą obiektów w Unity, zaprojektowana dla gier wymagających częstego tworzenia i usuwania instancji (pociski, przeciwnicy, efekty). Korzysta z operacji CAS (compare-and-swap) do bezpiecznego dostępu z wielu wątków bez blokad. Pozwala zaoszczędzić zasoby pamięci poprzez ponowne użycie obiektów zamiast ich ciągłego alokowania i dealokowania, co zmniejsza opóźnienia spowodowane garbage collection. Obsługuje inicjalizację przy wypożyczeniu obiektu i czyszczenie przy zwrocie, a także preallokację puli na start gry.
Jak używać
Dodaj JObjectPool do projektu Unity — skopiuj plik umiejętności do folderu
.claude-plugin/skills/w swoim projekcie JEngine lub zaimportuj bezpośrednio do kodu.Utwórz nową instancję puli dla typu obiektu, który chcesz zarządzać. Na przykład dla pocisku:
var bulletPool = new JObjectPool<Bullet>(maxSize: 100);gdziemaxSizeokreśla maksymalną liczbę obiektów przechowywanych w puli.Opcjonalnie zdefiniuj akcję inicjalizacyjną wywoływaną przy wypożyczeniu obiektu — przekaż ją jako parametr
onRent. Na przykład:onRent: static bullet => bullet.Reset()przywróci stan pocisku do wartości domyślnych.Opcjonalnie zdefiniuj akcję czyszczenia wywoływaną przy zwrocie obiektu — przekaż ją jako parametr
onReturn. Dla listy:onReturn: static list => list.Clear()wyczyści zawartość przed ponownym użyciem.W pętli gry lub spawnerze pobierz obiekt z puli metodą
.Rent(), użyj go, a następnie zwróć go do puli metodą.Return(obj). Na przykład:var bullet = bulletPool.Rent(); /* użyj bullet */ bulletPool.Return(bullet);Opcjonalnie preallokuj obiekty na starcie gry metodą
.Prewarm(count), aby uniknąć tworzenia nowych instancji podczas rozgrywki — na przykład.Prewarm(50)przygotuje 50 pociników przed pierwszym użyciem.