Jump to content
Unity Insider Forum

Performance Android


Web

Recommended Posts

Hi,

 

ich habe mal eine generelle Frage wie das in der Spieleentwicklung oder in Unity selbst abläuft. Ich habe ein kleines Jump and Run für Android programmiert. 2D Welt, aber alles mit 3D Assets. Selbstverständlich habe ich auf die Anzahl der Polygone dere inzelnen Objekte geachtet.

 

Nur wie läuft das nun ab?

Ich habe mir die komplette Welt im Editor gebaut. Sprich Plattformen, Gegner Prefabs in den Editor gezogen und dort platziert, Boni, Verzierungen im Hintergrund etc. etc.

Nur, macht man das denn tatsächlich so? Sorgt die Engine denn dafür das alles Just in Time initiliaisiert und gerendert wird oder wird beim starten der Szene tatsächlich alles geladen und am Ende des Levels rennen die Gegner schon rum, obwohl ich weiter davon entfernt bin sie auch nur ins Bild zu bekommen? Oder gibt es dann tatsächlich so Scriptstellen, welche das Initialisieren der nächsten (z.B.) zwei Bildschirme auslösen?

 

Ich frage, weil ich große Performance-Sprünge auf unterschiedlichen Geräten festgestellt habe. Unter Dual Core läuft das Spiel z.B. gar nicht, was aber vermutlich an der Anzahl zu emmitierender Partikel meiner Partikeleffekt liegt, das krieg ich also noch halbwegs in den Griff. Aber selbst auf einem Nexus 4 komme ich irgendwann an die Grenzen was die Hardware schafft.

Den Artikel Performance einsparen allgemein habe ich mir schonmal gebookmarked und nehme ich mir demnächst vor, aber vielleicht mache ich ja etwas grundlegendes schon beim bauen falsch. über ein paar Tipps würde ich mich freuen.

 

greez Web

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was du im Editor in die Szene setzt ist auch beim Start dort, ob du es siehst oder nicht... da gibt es auch keine Funktion dafür die das teilweise reinladen für dich übernimmt das musst du selbst machen...

Das einzige was standartmäßg von Unity gemacht wird ist das Frustumculling, also das ausschalten aller Renderprozesse von Objekte die nicht sichtbar sind.

Zum verbessern der performenz gibt es noch OcclusionCulling was aber nur mit der pro-version möglich ist und ob das bei einem 2D Spiel überhaupt sinnvoll ist bezweifel ich weil ja schon alles ausgeschalten ist was rechts oder links vom cameraviewport ist.

Bei Animation kannst du auch sagen dass das Objekt außerhalb der Kamera nicht animiert wird um vlt ein bissl was rauszuholen.

Ansonsten solltest du deine Level nicht zu groß bauen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aha, das ist ja schonmal gut zu wissen, danke.

Das mit den Animationen außerhalb der Kamera klingt gut, das werde ich mir bei Zeiten mal anschauen. Ansonsten würde sich ja anbieten auslösende Scripts zu basteln, die Objekte erst initialisiert, wenn man in die Nähe kommt, wie in meinem Startpost erwähnt. Das werde ich evtl. auch mal ausprobieren. das könnte man natürlich noch mit schönen Effekten verbinden alá das Level baut sich vor deinen Augen auf oder so. Gut gut, danke, jetzt habe ich schonmal einiges an Optimierungsbedarf :)

 

greez Web

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...