Sascha Posted November 22, 2018 Report Share Posted November 22, 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 Quote Link to comment Share on other sites More sharing options...
Sascha Posted November 27, 2018 Author Report Share Posted November 27, 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. Quote Link to comment Share on other sites More sharing options...
devandart Posted November 28, 2018 Report Share Posted November 28, 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! Quote Link to comment Share on other sites More sharing options...
Sascha Posted November 28, 2018 Author Report Share Posted November 28, 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. Quote Link to comment Share on other sites More sharing options...
Damon93 Posted November 28, 2018 Report Share Posted November 28, 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? Quote Link to comment Share on other sites More sharing options...
Sascha Posted November 28, 2018 Author Report Share Posted November 28, 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. Quote Link to comment Share on other sites More sharing options...
SyntaxTalkstoMe Posted November 29, 2018 Report Share Posted November 29, 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ß Quote Link to comment Share on other sites More sharing options...
Damon93 Posted November 29, 2018 Report Share Posted November 29, 2018 Ah okey haha ja da hab ich an ganz was anderes gedacht Trotzdem sehr cool! Quote Link to comment Share on other sites More sharing options...
Sascha Posted November 12, 2019 Author Report Share Posted November 12, 2019 Dickes Update: Unter anderem enthält das Paket jetzt den gesamten Quellcode. Quote Link to comment Share on other sites 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.