Hier ist die entsprechende Unity-Dokumentation .
Gemäß den Erläuterungen auf den Unity-Dokumentationsseiten zu statischen GameObjects kann das Markieren von GameObjects als statisch die Leistung beeinträchtigen (z. B. führt statisches Batching zu einer höheren Speichernutzung) .
Wann sollte ich diese Funktionen genau nutzen wollen?
Danke im Voraus.
Fußnoten:
Ich entwickle derzeit ein 2D-Top-Down-Spiel mit vielen Sprites und LineRenderern, aber keinen 3D-Objekten (nicht einmal einem Quad). Alle GameObjects werden prozedural aus vorgefertigten Fertighäusern instanziiert. LineRenderer werden in jedem Frame aus Skripten aktualisiert. Und fast alle Sprites bewegen sich ständig. Die Mehrheit der Sprites teilt das gleiche Material. Alle LineRenderer teilen auch ihr eigenes Material.
quelle
Antworten:
Es gibt keine feste Regel, wann Sie GameObjects statisch machen sollen oder nicht.
Zumindest nur für Objekte, die sich in ihrem Leben niemals bewegen werden. Aber Sie müssen wissen, was es tut, um zu bewerten, ob Sie sollten oder nicht.
Das Netz wird in den Szenendaten eingefroren, sodass Sie nicht den Overhead des GameObject für das Objekt haben. Dies bedeutet eine Leistungssteigerung auf Kosten der Änderung der Szenendaten zur Erstellungszeit und zusätzliche Speicherkosten für die endgültig erstellte Anwendung.
Dies ist in vielen Fällen in Ordnung, kann jedoch Probleme verursachen, beispielsweise bei Wäldern. Dies bedeutet auch, dass anstatt die Verts für den Baum einmal zu speichern und die GPU-Zeichnungskopien, diese Verts überall dupliziert werden müssen. Das braucht Zeit während des Builds und Platz in der App. Unsere App ging von 3-4 GB auf 300-400 MB, als wir die Bäume nicht statisch machten. Die Bauzeit stieg von 3-4 Stunden auf 1 Stunde.
Nachdem ich das alles gesagt habe! Ihr Spiel ist 2d und würde wahrscheinlich davon profitieren, GameObjects in Szenen auf statisch zu setzen, vorausgesetzt, Sie haben nicht Tonnen davon.
quelle
Wenn ich allgemein sage, sollte alles, was sich im gesamten App-Leben niemals bewegen wird (nicht einmal ein Pixel), als statisch markiert werden. Normalerweise ist es nützlich zum Backen von Lichtern, Backen von Navmesh-Pfaden usw.
Wenn Sie ohne 3D-Objekte entwickeln, entspannen Sie sich und entspannen Sie sich. Sie müssen sich keine Gedanken über Echtzeit-Rendering, Schatten oder andere Probleme machen. Auch das Löschen des einzigen Lichts kommt mit neuer Szene;)
Nun, jeder kann mich korrigieren, wenn ich mich irgendwo irre.
quelle