Jump to content
Unity Insider Forum

13Pixels Pooling


Recommended Posts

Moinsen!

Ich habe gerade ein Paket im Asset Store veröffentlicht:

Icon.png

Der Thread dazu auf Englisch im Unity-Forum: https://forum.unity.com/threads/released-13pixels-pooling.587068/

Falls jemand noch nicht so richtig weiß was Pooling ist: Instantiate und Destroy sind keine besonders performanten Methoden. Instantiate deserialisiert das gesamte Prefab einmal und Destroy erzeugt Memory Garbage. Pooling beschreibt den Ansatz, bestimmte Objekte nicht zu löschen, sondern zu deaktivieren und später wiederzuverwenden. Objekt-Typen, die oft spawnen und wieder despawnen, werden dabei performanter, wenn man Pooling benutzt.

Es gibt bereits einige Pooling-Pakete, und ich habe einige angeschaut und ausprobiert... trotzdem habe ich mein eigenes geschrieben, weil mir nichts davon gefallen hat. Kurze Zusammenfassung, was mein Paket anders macht als andere:

  • Kein Extra-Setup nötig. Andere Pakete haben meistens einen Pool Manager oder so, also ein Objekt, in das man seine Prefabs ziehen muss, damit man Pooling mit ihnen machen kann. Oder man muss die PRefabs alle in einen bestimmten Ordner tun. Bei 13Pixels Pooling gilt der Grundsatz: Pooling ist eine technische Angelegenheit, und deshalb sollte es im Editor so wenig wie möglich auftauchen. Deine Szenen werden sich nicht ändern, wenn du von Instantiate/Destroy auf dieses Paket umsteigst.
  • Anpassbares Pooling-Verhalten pro Prefab. Standardmäßig benutzt das Paket GameObejct.SetActive, um Objekte zu de- und zu re-aktivieren. Je nach Prefab kann es aber auch reichen, das Objekt einfach aus der Szene rauszuverschieben oder eine einzelne Komponente gezielt zu deaktivieren. In solchen Fällen kann man ein einfaches Interface implementieren, um einem Prefab sein eigenes Pooling-Verhalten zu geben.
  • Pooling-Instanzen können beliebigen Objekten untergeordnet werden. Oft müssen von einem Pooling-System instanziierte Objekte einem Pooling-spezifischen Objekt untergeordnet bleiben - hier nicht.

Hier gibt's (auf Englisch) die Anleitung, um mal einen Einblick in den Workflow zu bekommen: http://13pixels.de/pages/assetstore/Pooling/User-Manual.pdf

Hier gibt's das Paket im Asset Store zu kaufen: http://u3d.as/1nvh

Feedback, Nachfragen und Ideen sind gerne gesehen. Und das nicht nur, weil ich das Ding in meinen eigenen Projekten benutze ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sehr cooles Paket Sascha!

Zitat

Deine Szenen werden sich nicht ändern, wenn du von Instantiate/Destroy auf dieses Paket umsteigst.

Heißt das, dass wenn ich dein Paket verwende ich mich nicht darum kümmern muss welche Objekte in den Pool kommen und welche nicht? Falls ja, wie findest du die Objekte welche in den Pool gehören? 

Klingt für mich nach ziemlich viel Reflection?! 

Oder habe ich da was grundlegend falsch verstanden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nope, Reflection gibt's keine.

Ich vermute, du verstehst etwas anderes unter der Aussage. Du musst deinen Szenen nicht editieren/abändern, deine Scripts natürlich schon. Die Änderungen sind aber minimal. Siehe hier:

049260a4-170d-4a0b-8f37-a8c8d5ab7359_sca

Der Unterschied besteht hier zu einigen anderen Paketen, bei denen du erstmal ein GameObject anlegen musst das deine Pooling-Prefabs managed. Finde ich ziemlich blöd, sowas.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 11 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...