Sascha Geschrieben 22. November 2018 Melden Share Geschrieben 22. November 2018 Moinsen! Ich habe gerade ein Paket im Asset Store veröffentlicht: 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 2 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 27. November 2018 Autor Melden Share Geschrieben 27. November 2018 Habe heute ein Debug-Fenster gebaut, das mehr Kontrolle zum Debuggen der Objekte im Pooling-System gibt. Das Paket-Update ist im Review-Prozess. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
devandart Geschrieben 28. November 2018 Melden Share Geschrieben 28. November 2018 Liest sich cool, was Du da gebaut hast, Glückwunsch. Ich benötige das Asset zwar nicht, aber aus Interesse: Bekommt man als Käufer auch den Source Code oder nur die DLLs? Viel Erfolg mit dem Produkt im Store, ich drücke die Daumen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 28. November 2018 Autor Melden Share Geschrieben 28. November 2018 Danke! Der Source Code ist tatsächlich nicht enthalten. Es gibt einfach zu viele Pooling-Assets im Store, dass ich etwas paranoid bin, dass jemand das einfach als seinen eigenen Kram verkauft... Ist auch das erste Mal. Bei anderen Sachen habe ich das nie so eng gesehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 28. November 2018 Melden Share Geschrieben 28. November 2018 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 28. November 2018 Autor Melden Share Geschrieben 28. November 2018 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: 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
SyntaxTalkstoMe Geschrieben 29. November 2018 Melden Share Geschrieben 29. November 2018 Klingt interessant. Ich kann es zwar noch nicht so würdigen wie manch anderer, da ich mich zu wenig mit der Materie auskenne, aber Daumen hoch. Ich wünsche dir viel Erfolg im Store. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Damon93 Geschrieben 29. November 2018 Melden Share Geschrieben 29. November 2018 Ah okey haha ja da hab ich an ganz was anderes gedacht Trotzdem sehr cool! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 12. November 2019 Autor Melden Share Geschrieben 12. November 2019 Dickes Update: Unter anderem enthält das Paket jetzt den gesamten Quellcode. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.