- Niedrige Vertex-Anzahl bei Modellen
- "Occlusion culling" (auch automatisch durch "viewing frustrum" - Sichtweite der Kamera)
- komplexe Shader vermeiden, "Mobile"-Versionen nutzen (vorallem keine "fragment shader", also Pro-Pixel-Shader)
- Texturen komprimieren und Größe reduzieren
- Mipmaps nutzen (nicht für UI!)
- Level of Detail (LoD) anwenden
- wenige Materialen verwenden -> besseres "batching", siehe DrawCall - Optimierungen
- Texturen zusammenfassen in "texture atlases" (dann auch entsprechend Renderer.sharedMaterial verwenden)
- Light Mapping ("baking") verwenden, siehe Licht - Optimierungen
- Transparenz vermeiden (bzw. alpha cut/test Shader)
- wenige Lichter
- Post Processing minimieren
Läuft das Spiel schneller bei niedrigerer Auflösung? -> Füllratenproblem
- Alpha-testing Shader gegen Alpha-blend austauchen
- einfachere Shader verwenden (Mobile, kein pow, exp, log, sin, tan usw.)
c7e1effa-b611-405d-9ed2-cddd8bdbf274|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Texturen
- wenn machbar auf Mipmaps verzichten
- komprimieren
- Read/Write abschalten
- Größe anpassen
Analyse und Maßnahmen
- Profiler.GetRuntimeMemorySize() RAM-Verbrauch durch Objekte
- Resources.UnloadAsset (Referenz bleibt bestehen)
- Resources.UnloadUnusedAssets (unreferenzierte)
- Vor und nach dem Laden eines Levels System.GC.Collect
- structures -> Stack, classes -> Heap
- foreach vermeiden, da Enumeratoren erschaffen werden
- analog anonyme Methoden und Lambdas
- AssetBundles verwenden
- strings nicht konkatenieren, ansonsten StringBuilder nutzen
- Asset pool verwenden bei häufigen Objekten, wie z.B. Geschosse
6da1cec0-0d26-41ec-84e6-5493717cb903|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04