Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Entwickeln von Apps für moderne Plattformen umfasst viele mehr Aktivitäten als nur das Schreiben von Code. Diese Aktivitäten, die als DevOps (Entwicklung + Vorgänge) bezeichnet werden, umfassen den gesamten Lebenszyklus der App und umfassen Planung und Nachverfolgung von Arbeiten, Entwerfen und Implementieren von Code, Verwalten eines Quellcode-Repositorys, Ausführen von Builds, Verwalten kontinuierlicher Integrationen und Bereitstellungen, Tests (einschließlich Komponententests und UI-Tests), Ausführen verschiedener Diagnoseformen in Entwicklungs- und Produktionsumgebungen sowie Überwachung der App-Leistung und Benutzerverhalten in Echtzeit durch Telemetrie und Analytik.
Visual Studio bietet zusammen mit Azure DevOps Services und Team Foundation Server eine Vielzahl von DevOps-Funktionen. Viele davon gelten für plattformübergreifende Projekte, einschließlich Spielen und immersiven grafischen Apps, die mit Unity erstellt wurden – insbesondere bei der Verwendung von C# als Skriptsprache. Da Unity jedoch über eine eigene Entwicklungsumgebung und ein eigenes Laufzeitmodul verfügt, gelten einige DevOps-Features nicht wie für andere Arten von Projekten, die in Visual Studio erstellt wurden.
In den folgenden Tabellen wird beschrieben, wie DevOps-Features in Visual Studio angewendet werden oder nicht angewendet werden, wenn Sie mit Unity arbeiten. Ausführliche Informationen zu den Features selbst finden Sie in der verknüpften Dokumentation.
Agile Tools
Referenzlink: Informationen zu Agile-Tools und agilem Projektmanagement (mit Azure Boards oder TFS, einschließlich Team Explorer Überall)
Allgemeiner Kommentar: Alle Planungs- und Tracking-Features sind unabhängig von Projekttyp- und Codierungssprachen.
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Verwalten von Backlogs und Sprints | Ja | |
Arbeitsnachverfolgung | Ja | |
Zusammenarbeit im Teamraum | Ja | |
Kanban-Boards | Ja | |
Melden und Visualisieren des Fortschritts | Ja |
Modellierung
Referenzlink: Analysieren und Modellarchitektur
Allgemeiner Kommentar: Obwohl diese Entwurfsfeatures unabhängig von der Codierungssprache sind oder mit .NET-Sprachen wie C# arbeiten, arbeiten sie mit einem herkömmlichen Anwendungsparadigma mit Objekthierarchien und Klassenbeziehungen. Das Entwerfen eines Spiels innerhalb von Unity umfasst ein anderes Paradigma insgesamt, nämlich die Beziehungen von grafischen Objekten, Sounds, Shadern, Skripts usw. Aus diesem Grund sind die Visual Studio-Modellierungsdiagrammtools für das gesamte Unity-Projekt nicht besonders relevant. Sie könnten möglicherweise verwendet werden, um Beziehungen in C#-Skripts zu verwalten, aber das ist nur ein Teil des gesamten.
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Sequenzdiagramme | Nein | |
Abhängigkeitsdiagramme | Nein | |
Anrufhierarchie | Nein | |
Klassendesigner | Nein | |
Architektur-Explorer | Nein | |
UML-Diagramme (Anwendungsfall, Aktivität, Klasse, Komponente, Sequenz und DSL) | Nein | |
Ebenendiagramme | Nein | |
Ebenenüberprüfung | Nein |
Code
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Verwenden Sie Team Foundation Version Control (TFVC) oder Azure Repos | Ja | Unity-Projekte sind einfach eine Sammlung von Dateien, die wie jedes andere Projekt in Versionssteuerungssysteme platziert werden können, aber es gibt einige spezielle Überlegungen, die nach dieser Tabelle beschrieben werden. |
Erste Schritte mit Git in Azure Repos | Ja | Sehen Sie sich die Notizen nach der Tabelle an. |
Verbessern der Codequalität | Ja | |
Ermitteln Codeänderungen und andere Verläufe | Ja | |
Verwenden von Codezuordnungen zum Debuggen Ihrer Anwendungen | Ja |
Besondere Überlegungen zur Versionssteuerung mit Unity:
Unity verfolgt Metadaten zu Spielressourcen in einer einzelnen, undurchsichtigen Bibliothek, die standardmäßig ausgeblendet ist. Um Dateien und Metadaten synchron zu halten, ist es notwendig, die Metadaten sichtbar zu machen und in besser verwaltbaren Blöcken zu speichern. Ausführliche Informationen finden Sie unter Verwenden externer Versionssteuerungssysteme mit Unity (Unity-Dokumentation).
Nicht alle Dateien und Ordner in einem Unity-Projekt sind für die Quellcodeverwaltung geeignet, wie auch im obigen Link beschrieben. Die Ordner "Assets" und "ProjectSettings" sollten hinzugefügt werden, aber die Ordner "Bibliothek" und "Temp" sollten nicht hinzugefügt werden. Eine zusätzliche Liste der generierten Dateien, die nicht in die Quellcodeverwaltung gelangen würden, finden Sie in der Diskussion Verwenden von Git für Unity3D-Quellcodeverwaltung? auf Stack Overflow. Viele Entwickler haben auch unabhängig voneinander über dieses Thema gebloggt.
Binäre Ressourcen in einem Unity-Projekt , z. B. Texturen oder Audiodateien, können einen großen Speicherplatz belegen. Verschiedene Quellcodeverwaltungssysteme wie Git speichern eine eindeutige Kopie einer Datei für jede vorgenommene Änderung, auch wenn sich die Änderung nur auf einen kleinen Teil der Datei auswirkt. Dies kann dazu führen, dass das Git-Repository aufgebläht wird. Um dies zu beheben, entscheiden sich Unity-Entwickler häufig dafür, nur endgültige Ressourcen zu ihrem Repository hinzuzufügen, und verwenden eine andere Möglichkeit, einen Arbeitsverlauf ihrer Objekte wie OneDrive, DropBox oder Git-Anhang beizubehalten. Dieser Ansatz funktioniert, da solche Ressourcen in der Regel nicht zusammen mit Quellcodeänderungen versioniert werden müssen. Entwickler legen in der Regel auch den Serialisierungsmodus des Projekteditors auf "Force Text" fest, um Szenendateien im Text- statt im Binärformat zu speichern, wodurch Zusammenführungen in der Quellcodeverwaltung ermöglicht werden. Ausführliche Informationen finden Sie unter Editoreinstellungen (Unity-Dokumentation).
Bauen
Referenzlink: Azure Pipelines
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Lokaler Team Foundation-Server (TFS) | Möglich | Unity-Projekte werden über die Unity-Umgebung und nicht über das Visual Studio-Buildsystem erstellt (das Erstellen innerhalb der Visual Studio-Tools für Unity kompiliert die Skripts, aber keine ausführbare Datei). Es ist möglich, Unity-Projekte über die Befehlszeile zu erstellen (Unity-Dokumentation). Sie können also einen MSBuild-Prozess auf einem TFS-Server zum Ausführen der entsprechenden Unity-Befehle konfigurieren, sofern Unity selbst auf diesem Computer installiert ist. Unity bietet auch Unity Cloud Build, das ein Git- oder SVN-Repository überwacht und regelmäßige Builds ausführt. Derzeit funktioniert es nicht mit TFVC oder Azure DevOps Services. |
Lokaler Buildserver, der mit Azure DevOps Services verknüpft ist | Möglich | Unter den gleichen Bedingungen wie oben ist es weiterhin möglich, die über Azure DevOps Services ausgelösten Builds auf einen lokalen TFS-Computer zu lenken. Anweisungen finden Sie im Artikel zum Erstellen und Veröffentlichen von Agents. |
Gehosteter Controllerdienst von Azure DevOps Services | Nein | Unity-Builds werden derzeit nicht unterstützt. |
Builddefinitionen mit Skripts vor bzw. nach der Ausführung | Ja | Eine benutzerdefinierte Builddefinition, die die Unity-Befehlszeile zum Ausführen eines Builds verwendet, kann auch für Skripts vor und nach dem Build konfiguriert werden. |
Continuous Integration (einschließlich Gated-Check-Ins) | Ja | Gated-Check-Ins für TFVC nur dann, wenn Git auf einem Pull-Request-Modell statt mit Eincheckvorgängen arbeitet. |
Test
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Planen von Tests, Erstellen von Testfällen und Organisieren von Testsammlungen | Ja | |
Manuelle Tests | Ja | |
Test-Manager (Aufzeichnungs- und Wiedergabetests) | Nur Windows-Geräte und Android-Emulatoren | |
Code Coverage | n/a | Gilt nicht, wenn Komponententests innerhalb von Unity und nicht in Visual Studio durchgeführt werden, siehe unten. |
Ausführen von Komponententests für Code | Innerhalb von Unity, aber nicht in Visual Studio | Unity stellt ein eigenes Komponententestframework als Teil Unity-Testtools (Unity Asset Store) bereit. Komponententestergebnisse werden in Unity gemeldet und werden nicht in Visual Studio angezeigt. |
Verwenden Sie UI-Automatisierung zum Testen des Codes | Nein | Codierte UI-Tests basieren auf lesbaren Steuerelementen in der Benutzeroberfläche der App; Unity-Apps sind in der Natur grafisch dargestellt, sodass Inhalte nicht von den Coded UI-Testtools gelesen werden können. |
Verbessern der Codequalität
Referenzlink: Codequalität verbessern
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Analysieren der Qualität von verwaltetem Code | Ja | Kann den C#-Skriptcode in Visual Studio analysieren. |
Finden von dupliziertem Code mithilfe der Erkennung von Code-Klonen | Ja | Kann den C#-Skriptcode in Visual Studio analysieren. |
Messen der Komplexität und Wartung von verwaltetem Code | Ja | Kann den C#-Skriptcode in Visual Studio analysieren. |
Leistungstools | Nein | Verwenden des Unity Profiler (Unity-Website) |
Analysieren von .NET Framework-Speicherproblemen | Nein | Visual Studio-Tools haben keine Anbindungen an das Mono-Framework (wie von Unity verwendet), um Profiling zu unterstützen. Verwenden Sie den Unity-Profiler (Unity-Dokumentation). |
Versionsverwaltung
Referenzlink: Erstellen und Veröffentlichen in Azure Pipelines und TFS
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Verwalten von Veröffentlichungsprozessen | Ja | |
Bereitstellen auf Servern für das Sideloading über Skripts | Ja | |
Hochladen in den App Store | Teilweise | Erweiterungen sind verfügbar, die diesen Prozess für einige App-Stores automatisieren können. Siehe Erweiterungen für Azure DevOps Services; Zum Beispiel die Erweiterung für Google Play. |
Überwachen mit HockeyApp
Referenzlink: Monitor mit HockeyApp
Merkmal | Unterstützt mit Unity | Zusätzliche Kommentare |
---|---|---|
Absturzanalyse, Telemetrie und Betaverteilung | Ja | HockeyApp ist hauptsächlich nützlich für die Verwaltung der Betaverteilung und das Sammeln von Absturzberichten. Für Telemetrie aus C#-Skripts ist es möglich, jedes Analyseframework zu verwenden, das auf der von Unity verwendeten Version von .NET läuft. Dies ermöglicht jedoch nur Analysen innerhalb von Spielskripts und nicht tiefer in der Unity-Engine. Derzeit gibt es kein Plug-In für Application Insights, aber Plug-Ins sind für andere Analyselösungen wie Unity Analytics und Google Analyticsverfügbar. Dienste wie Unity Analytics, die die Natur eines Unity-Projekts verstehen, bieten natürlich viel aussagekräftigere Analysen als generische Frameworks. |