Einheit und viele Objekte. Kann diese Art der Gestaltung von Ebenen Probleme mit sich bringen?

7

Ok, Frage.

Ich habe eine Weile für Unity gespielt und jetzt versucht, ein zusammenhängendes Spiel zu machen.

Bis jetzt habe ich den schnellsten Weg gefunden, Ebenen für mich zu entwerfen, indem ich einen Wand- / Bodenblock als "Einheit" erstelle und ihn viele Male kopiere.

Das Ergebnis ist ungefähr so Geben Sie hier die Bildbeschreibung ein

Die Blöcke sind im Grunde nur eine Transformation + ein Sprite-Renderer + ein Box-Collider .

Meine Frage ist nun: Kann dieser Ansatz Probleme mit sich bringen, da er im Grunde genommen sehr viele Objekte erzeugt? Wenn ja, welche Alternativen gibt es? Größere Blöcke erstellen?

Zäsur
quelle
5
Profil, Profil, Profil ... Erstellen Sie 10x so viele Objekte, wie Sie glauben, dass Ihr größtes Level darin besteht, es zu testen. Wenn es dann ein Problem gibt, beheben Sie es. Kein Problem? Warum sollten Sie dann zusätzliche Arbeit für sich selbst schaffen?
ADB
1
Der Kommentar von ADB sollte die akzeptierte Antwort sein. Das Lösen noch nicht vorhandener Leistungsprobleme ist in vielen Fällen Zeitverschwendung.
Patrick Klug

Antworten:

12

Ja, das Erstellen vieler Objekte kann später zu Leistungsproblemen führen. Die Alternative besteht darin, weniger Objekte zu verwenden. In diesem Fall bedeuten weniger Objekte, die den gleichen Platz beanspruchen, größere Objekte.

Sie können beispielsweise eine Textur erstellen, die wie 4 oder 8 Blöcke nebeneinander aussieht, und dann ein Objekt erstellen, das 4 oder 8 Mal länger als ein normaler Block ist.

MichaelHouse
quelle
6

Ein guter Weg, dies zu tun, wäre, ein Spielobjekt zu haben, das die Blöcke aus einem Skript generiert, dann einen Box-Collider für das Ganze generiert und alles aus einem Spielobjekt rendert. Das würde die Notwendigkeit einer großen Menge von Spielobjekten beseitigen. Alles, was Sie von dort aus tun müssen, ist, dem Kartengenerator eine Art Blockkarte zu übergeben.

Natürlich können alle eindeutigen Blöcke, die im Spiel ungewöhnlich sein könnten, als separate Einheiten aufbewahrt werden.

Ashigaru
quelle
1

Wenn es nur 1 Block ist, benötigen Sie nur 1 Fertighaus , und Sie können dieses Fertighaus bei Bedarf in einem Skript instanziieren und natürlich eine Transformation anwenden, um in die richtige Position zu passen, oder zerstören, wenn Sie sie nicht mehr benötigen.

Seb B.
quelle