Unity 2020.2

Tools für Programmierer

Verbessern Sie Ihre Scripting-Workflows mit Unity 2020.2. Nutzen Sie unsere verbesserten Tools für Programmierer, um Ihre Projekte schneller zu iterieren und für eine maximale Leistung zu optimieren. 

Neues in Version 2020.2

Entdecken Sie einige der wichtigsten Verbesserungen und neuen Features für Programmierer in Unity 2020.2. Alle Details können Sie in den Versionshinweisen einsehen.

Verbessern Sie Kompilationszeiten mit deterministischer Kompilation

Während Projekte an Komplexität zunehmen, kann das Kompilieren neuer Code-Änderungen mehr Zeit benötigen und die Produktivität Ihres Teams verringern. Unity 2020.2 bietet eine „deterministische“ Kompilierungs-Option für das Kompilieren von C#-Skripten. Mit dieser Option vermeiden Sie unnötiges Re-Kompilieren von Assembly-Definitionsreferenzen (.asmdef), wenn sich die öffentlichen Metadaten beim Kompilieren von Scripts für den Editor nicht ändern. Das ist besonders nützlich, um die Iterationszeit zu reduzieren, wenn Sie Änderungen an Assemblies vornehmen, die viele direkte und/oder indirekte Referenzen haben.

Mehr erfahren

C# 8 Support

Unity 2020.2 unterstützt alle der neuesten C#8 Features und Verbesserungen außer Standardschnittstellen-Methoden. Dies schließt nullbare Referenztypen ein, wodurch der Kompiler jedes mal eine Warnung anzeigen kann, wenn Sie versuchen, einem Referenztyp oder einer Variable den Wert Null zuzuweisen. Der Musterabgleich mit Switch-Ausdrücken bietet Ihnen eine reibungslosere Methode, um konditionellen Code zu schreiben.

Für einen vollständigen Überblick über alles Neue in C# 8, schauen Sie in die Dokumentation von Microsoft.

C#_8_support.cs (C#)
public static RGBColor FromRainbow(Rainbow colorBand) =>
    colorBand switch
    {
        Rainbow.Red    => new RGBColor(0xFF, 0x00, 0x00),
        Rainbow.Orange => new RGBColor(0xFF, 0x7F, 0x00),
        Rainbow.Yellow => new RGBColor(0xFF, 0xFF, 0x00),
        Rainbow.Green  => new RGBColor(0x00, 0xFF, 0x00),
        Rainbow.Blue   => new RGBColor(0x00, 0x00, 0xFF),
        Rainbow.Indigo => new RGBColor(0x4B, 0x00, 0x82),
        Rainbow.Violet => new RGBColor(0x94, 0x00, 0xD3),
        _              => throw new ArgumentException(message: "invalid enum value", paramName: nameof(colorBand)),
    };
Siehe Microsofts C#-8-Leitfaden

Der Stamm-Namespace ist in den Assembly-Definitionseinstellungen verfügbar

Namespaces in C# bieten eine effiziente Methode, um Ihren Code zu organisieren und Klassen-Namenskonflikte mit anderen Paketen und Bibliotheken zu vermeiden. Der Stamm-Namespace ist jetzt als neues Feld im asmdef Inspector verfügbar und er wird dazu verwendet, automatisch einen neuen Namespace hinzuzufügen, wenn ein neues Skript in Unity und in Visual Studio und Rider erstellt wird.

Denken Sie daran, die Visual-Studio- und Rider-Pakete auf die neueste Version zu aktualisieren, wenn Sie diese Funktionalität nutzen wollen.

Mehr erfahren
Vergleich von Serial- und Parallel-IL2CPP-Konversionszeit von zwei Projekten vor und nach Multithread-Konversion. Die rote Linie stellt ein internes Demoprojekt und die orangefarbene Linie das Projekt eines externen Studios dar.

Schnellere Build-Kompilation

Unity 2020.2 bietet erhebliche Verbesserungen bei der Build-Kompilationszeit. Falls Sie Änderungen machen, die keinen Code betreffen, sondern zum Beispiel Materialien, Shader oder Prefabs, wird die IL2CPP-Konvertierung von .NET Assemblies zu C++ nun vollständig übersprungen, wenn Sie den Build eines Players entwickeln. 

In Unity 2020.2 profitiert die IL2CPP-Konvertierung von modernen Mehrkernprozessoren, indem sie von Single- zu Multithread übergeht und die IL2CPP-Player-Build-Zeiten, wie in den obigen Testprojektdaten gezeigt, dramatisch reduziert. 

Mehr erfahren

Konsistente Time.deltaTime

Unity 2020.2 behebt die inkonsistenten Werte für Time.deltaTime, die während des Gameplays zu stotternden Objektbewegungen führen. Das TimeManager-Interface wurde dahingehend umgestaltet, dass Rahmenzeitberechnungen stabiler sind und viel glattere Objektbewegungen bieten, wenn das Spiel mit einer stabilen Framerate läuft. Unity 2020.2 unterstützt diese Zeitstabilitätsverbesserungen bei iOS, macOS, PS4, Switch, tvOS, UWP, Windows und Xbox One. Verbesserungen bei Android, Windows/Linux auf Vulkan und XR kommen später. Lesen Sie den Blog-Eintrag für Einzelheiten.

Mehr erfahren
Insgesamt fand durch die Optimierung ein 12- bis über 800-fache Beschleunigung bei einer Verarbeitung von 100 bis 5000 Importern statt (die gesamte Verbesserung zeigt die Grafik auf der rechten Seite an).

Leistungsverbesserungen

Unity 2020.2 bietet mehrere bedeutende Optimierungen, inklusive der geschachtelten Prefabs, die zu einer erheblich schnelleren Sortierung führen und das Nachschlagen beschleunigen. Suchen in der Registrierungsfunktion Editor Scripted Importers haben sich in Tests als bis zu 800-mal schneller erwiesen. Schließlich hat das Optimierungsteam auch Camera.main umgestaltet und die Zeit, die benötigt wird, um die Funktion abzufragen, in manchen Projekten um Hunderte Millisekunden reduziert.

Mehr erfahren

Editor-Co-Routinen und schnellere Workflows mit konfigurierbarem Spielmodus

Der Konfigurierbare Spielmodus ist kein experimentelles Feature mehr und er ermöglicht Ihnen, entweder die Aktionen des „Domain Reloads“ oder des „Scene Reloads“ oder beider zu deaktivieren, um den Spielmodus zu beschleunigen. Mit Editor Co-Routinen, die jetzt nicht mehr im Preview sind, können Sie die Ausführung von Iterator-Methoden innerhalb des Editors starten, ähnlich wie Co-Routinen innerhalb von MonoBehaviours-Skripten während der Laufzeit gehandhabt werden.

Mehr erfahren

Verwaltetes Code-Stripping mit Unity Linker

Unity Linker führt statische Analysen aus, um Stripping von verwaltetem Code auszuführen. Er erkennt auch eine Anzahl von Attributen und ermöglicht Ihnen Abhängigkeiten zu kommentieren, soweit er sie nicht identifizieren kann. In Unity 2020.2 erhielt das Tool API Updates um mit Mono IL Linker übereinzustimmen. Ab Unity 2020.1 kann der Unity Linker einige einfache Reflektionsmuster erkennen, wodurch der Bedarf verringert wird, link.xml-Dateien zu verwenden.

Mehr erfahren

Profiler Updates

Sie können nun Charts im Profiler-Fenster hinzufügen, um mehr Einblicke in die Leistung und Kontext entweder für bestehende oder für anwendergenerierte Profiler-Statistiken zu erhalten. Gleichzeitig können Flow Events serielle Task-Abhängigkeiten in der Profiler Timeline anzeigen und Ihnen helfen, zu identifizieren, auf welche Tasks in einer Operationssequenz Ihre Anwendung Zeit verwendet.

Sie können jetzt Render- und Memory-Profiler-Statistiken in den Playern visualisieren. Legen Sie bestehende Profiler-Statistiken mithilfe der Laufzeit-API offen und lesen Sie die Werte von Leistungsstatistiken für die bestehenden Profiler-Bereiche wie Speicher, Rendering und andere in den Playern. Nutzen Sie diese Daten, um Leistungs-Heads-Up-Displays (HUDs) anzuzeigen, während Ihr Projekt auf dem Zielgerät läuft oder entwickeln Sie andere Leistungs-Tools für Ihre eigenen Bedürfnisse.

Mehr erfahren

Verbesserungen für Roslyn Analyzer

Die Kompilations-Pipeline unterstützt jetzt Roslyn Analyzer. Das ermöglicht Ihnen C#-Code-Analyzer asynchron im Hintergrund innerhalb des Unity Editors laufen zu lassen, ohne den Iterations-Workflow zu unterbrechen. Sie können sie auch synchron von der Kommandozeile aus laufen lassen. 

Roslyn Analyzer und Regelwerk-Dateien in Unity-Projekten sind mächtige Tools, um Ihren Code hinsichtlich Stil, Qualität und anderer Aspekte zu untersuchen. Sie können bestehende Analyzer-Bibliotheken nutzen, um Ihren Code zu inspizieren, und Ihre eigenen Analyzer schreiben, um die Best-Practices oder Konventionen innerhalb Ihrer Organisation zu fördern.

Mehr erfahren

Unity Safe Mode

Der Unity Safe Mode verbessert, wie sich Unity verhält, wenn Sie ein Projekt öffnen, das Skript-Kompilierungsfehler hat. Wenn Kompilierungsfehler beim Start des Editors entdeckt werden, werden Sie nun aufgefordert den Safe Mode zu starten. Dieser bietet Ihnen eine Umgebung, die darauf ausgelegt ist, sie zu beheben, so dass Sie Ihr Projekt schnell wieder in einen funktionalen Zustand bringen können, ohne auf unnötige Importe der Assets Ihres Projektes zu warten. Dieses Feature vereinfacht und beschleunigt den Prozess, ein Projekt auf eine neue Unity-Version zu aktualisieren, und es hilft Teams, die an großen Projekten arbeiten, durch Reduzierung der Fallzahlen in denen der Bibliotheksordner fehlerhafte Import-Artefakte enthält.

Mehr erfahren

Unity 2020.2 jetzt herunterladen

Holen Sie sich all das und vieles mehr noch heute.

Wir verwenden Cookies, damit wir Ihnen die beste Erfahrung auf unserer Website bieten können. In unseren Cookie-Richtlinien erhalten Sie weitere Informationen.

Verstanden