Wie der Check funktioniert
Die CheckPerformanceOptimization
wurde entwickelt, um mögliche Vorschläge zur Leistungsoptimierung in Skripten zu identifizieren und zu melden. Diese Prüfung hilft Entwicklern, häufige Leistungsprobleme zu erkennen und schlägt Verbesserungen vor. Hier wird eine Reihe von Dingen überprüft - meist schnelle Korrekturen in deinem Code, damit er schneller läuft!
Wann sollte dieser Check verwendet werden?
- Optimierung der Leistung: Identifiziere und behebe potenzielle Leistungsprobleme in deinen Skripten und verbessere die Gesamtleistung deines Unity-Projekts.
- Einhaltung der Best Practices: Stelle sicher, dass die Best Practices zur Leistungssteigerung eingehalten werden, indem du die Vorschläge der Kontrolle nutzt.
Wie man den Scheck verwendet
- Checks konfigurieren: Verwende den Unity-Editor, um zu konfigurieren, welche Leistungsprüfungen du je nach deinen Projektanforderungen aktivieren oder deaktivieren möchtest.
Wie man Fehler wie diesen behebt
Wenn du bei dieser Prüfung Ergebnisse siehst, bedeutet das, dass du deinen Code verbessern kannst:
- Performance-Vorschlag: Verwende nicht AddComponent: Es ist oft schneller, Komponenten im Editor hinzuzufügen und sie bei Bedarf zu deaktivieren/aktivieren
- Leistungsvorschlag: Verwende nicht die Suchfunktion: Dies ist eine sehr langsame Funktion. Wenn du sie verwendest, solltest du ihr einen Sortierparameter übergeben, um die Geschwindigkeit zu optimieren. Versuche, diese Ergebnisse im Editor zwischenzuspeichern und zuzuweisen, wenn möglich
- Performance-Vorschlag: Verwende nicht GetComponent: Versuche, diese Ergebnisse im Editor zwischenzuspeichern und zuzuweisen, wenn möglich
- Performance-Vorschlag: Verwende nicht die Debug-Log-Methode: Dies kann zu einem sehr langsamen Spielablauf führen, wenn es zu oft verwendet wird. Wir empfehlen, eine Ersatzfunktion wie Dbg.Log zu implementieren, die du für Builds abschalten kannst
- Performance-Vorschlag: keine String-basierten Methodenaufrufe verwenden: Dies kann sehr langsam sein, also benutze es nicht, wenn es eine Möglichkeit gibt, es zu vermeiden.
- Performance-Vorschlag: Verwende nicht Camera.main: Das ist sehr langsam, vor allem wenn es in Update-Funktionen geschieht. Wenn möglich, verwende Camera.main einmal und speichere das Ergebnis in einer Variablen.
- Performance-Vorschlag: Verwende keinen Unity-Objektvergleich mit Null: Ein schnellerer Weg wäre die Verwendung von
System.Object.ReferenceEquals(myObject, null)
. Auch siehe hier.