Toolverse
Wszystkie skille

jobjectpool

autor: JasonXuDeveloper

Bezpieczna pula obiektów dla Unity — zmniejsz garbage collection w grach

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Mobile
Wyświetlenia
4

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ć

  1. 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.

  2. 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); gdzie maxSize określa maksymalną liczbę obiektów przechowywanych w puli.

  3. 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.

  4. 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.

  5. 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);

  6. 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.

Podobne skille