Partager via


DevOps avec des applications Unity

Le développement d’applications pour les plateformes modernes implique beaucoup plus d’activités que l’écriture de code. Ces activités, appelées DevOps (développement + opérations), couvrent le cycle de vie complet de l’application et incluent la planification et le suivi du travail, la conception et l’implémentation du code, la gestion d’un référentiel de code source, l’exécution de builds, la gestion des intégrations et des déploiements continus, les tests (y compris les tests unitaires et les tests d’interface utilisateur), l’exécution de différentes formes de diagnostics dans les environnements de développement et de production, ainsi que la surveillance des performances des applications et des comportements des utilisateurs en temps réel via la télémétrie et les comportements des utilisateurs. analytique.

Visual Studio, avec Azure DevOps Services et Team Foundation Server, fournit une variété de fonctionnalités DevOps. La plupart d’entre eux s’appliquent aux projets multiplateformes, y compris les jeux et les applications graphiques immersives créées avec Unity, en particulier lors de l’utilisation de C# comme langage de script. Toutefois, étant donné que Unity possède son propre environnement de développement et son moteur d’exécution, un certain nombre de fonctionnalités DevOps ne s’appliquent pas comme elles le feraient à d’autres types de projets créés dans Visual Studio.

Les tableaux suivants identifient la façon dont les fonctionnalités DevOps dans Visual Studio s’appliquent ou ne s’appliquent pas lors de l’utilisation d’Unity. Reportez-vous à la documentation liée pour plus d’informations sur les fonctionnalités elles-mêmes.

Outils agiles

Lien de référence : À propos des outils Agile et de la gestion de projets Agile (à l’aide d’Azure Boards ou de TFS, y compris Team Explorer Everywhere)

Commentaire général : toutes les fonctionnalités de planification et de suivi sont indépendantes du type de projet et des langages de codage.

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Gérer les backlogs et les sprints Oui
Suivi du travail Oui
Collaboration en espace d'équipe Oui
Tableaux Kanban Oui
Signaler et visualiser la progression Oui

Modelage

Lien de référence : Analyser et modéliser l’architecture

Commentaire général : Bien que ces fonctionnalités de conception soient indépendantes du langage de codage ou fonctionnent avec des langages .NET comme C#, elles fonctionnent sur un paradigme d’application traditionnel avec des hiérarchies d’objets et des relations de classe. La conception d’un jeu dans Unity implique un paradigme différent, à savoir les relations des objets graphiques, des sons, des nuanceurs, des scripts, etc. Pour cette raison, les outils de diagramme de modélisation Visual Studio ne sont pas particulièrement pertinents pour l’ensemble d’un projet Unity. Ils peuvent être utilisés pour gérer les relations au sein de scripts C#, mais ce n’est qu’une partie de l’ensemble.

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Diagrammes de séquences Non
Graphiques de dépendances Non
Hiérarchie d'appels Non
Concepteur de classes Non
Explorateur d’architectures Non
Diagrammes UML (cas d’usage, activité, classe, composant, séquence et DSL) Non
Diagrammes de couche Non
Validation de couche Non

Code

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Utiliser Team Foundation Version Control (TFVC) ou Azure Repos Oui Les projets Unity sont simplement une collection de fichiers qui peuvent être placés dans des systèmes de contrôle de version comme n’importe quel autre projet, mais il existe quelques considérations particulières décrites après ce tableau.
Bien démarrer avec Git dans Azure Repos Oui Consultez les notes après le tableau.
Améliorer la qualité du code Oui
Rechercher les modifications de code et d’autres historiques Oui
Utiliser des mappages de code pour déboguer vos applications Oui

Considérations spéciales relatives au contrôle de version avec Unity :

  1. Unity effectue le suivi des métadonnées sur les ressources de jeu dans une bibliothèque opaque unique qui est masquée par défaut. Pour conserver les fichiers et les métadonnées synchronisés, il est nécessaire de rendre les métadonnées visibles et de les stocker dans des blocs plus gérables. Pour plus d’informations, reportez-vous à Utilisation de systèmes de contrôle de version externes avec Unity (documentation Unity).

  2. Tous les fichiers et dossiers d’un projet Unity ne sont pas tous appropriés pour le contrôle de code source, comme décrit dans le lien ci-dessus. Les dossiers Assets et ProjectSettings doivent être ajoutés, mais les dossiers Bibliothèque et Temp ne doivent pas. Pour obtenir une liste supplémentaire de fichiers générés qui ne seraient pas entrés dans le contrôle de code source, consultez la discussion Comment utiliser Git pour le contrôle de code source Unity3D ? sur Stack Overflow. De nombreux développeurs ont également écrit des articles sur ce sujet indépendamment.

  3. Les ressources binaires dans un projet Unity, comme les textures ou les fichiers audio, peuvent prendre une grande quantité de stockage. Différents systèmes de contrôle de code source tels que Git stockent une copie unique d’un fichier pour chaque modification effectuée, même si la modification n’affecte qu’une petite partie du fichier. Cette opération peut provoquer la saturation du référentiel Git. Pour résoudre ce problème, les développeurs Unity choisissent souvent d’ajouter uniquement des ressources finales à leur référentiel et d’utiliser un autre moyen de conserver un historique de travail de leurs ressources, comme OneDrive, DropBox ou git-annex. Cette approche fonctionne, car ces ressources n’ont généralement pas besoin d’être versionnée avec les modifications de code source. Généralement, les développeurs définissent aussi le mode de sérialisation de ressources de l’éditeur du projet sur Forcer le texte pour stocker les fichiers de séquence dans du texte plutôt que dans un format binaire, ce qui permet des fusions dans le contrôle de code source. Pour plus d’informations, consultez paramètres de l’éditeur (documentation Unity).

Construire

Lien de référence : Azure Pipelines

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Team Foundation Server (TFS) sur site Possible Les projets Unity sont générés via l’environnement Unity et non par le biais du système de génération Visual Studio (la génération dans Visual Studio Tools pour Unity compile les scripts, mais ne produit pas d’exécutable). Il est possible de générer des projets Unity à partir de la ligne de commande (documentation Unity), afin de configurer un processus MSBuild sur un serveur TFS pour exécuter les commandes Unity appropriées, à condition que Unity lui-même soit installé sur cet ordinateur.

Unity offre également Unity Cloud Build, qui surveille un référentiel Git ou SVN et exécute des builds périodiques. Actuellement, elle ne fonctionne pas avec TFVC ou Azure DevOps Services.
Serveur de build local lié à Azure DevOps Services Possible Étant donné les mêmes conditions que ci-dessus, il est également possible de diriger les builds déclenchées via Azure DevOps Services pour utiliser un ordinateur TFS local. Pour obtenir des instructions, consultez Agents de build et de mise en production.
Service de contrôleur hébergé d’Azure DevOps Services Non Les builds Unity ne sont actuellement pas prises en charge.
Définitions de builds avec des pré-scripts et des post-scripts Oui Une définition de build personnalisée qui utilise la ligne de commande Unity pour exécuter une build peut également être configurée pour les scripts pré-build et post-build.
Intégration continue, y compris les vérifications contrôlées Oui Archivages contrôlés pour TFVC uniquement si Git utilise un modèle de requête d'extraction plutôt que des archivages.

Tester

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Planification des tests, création de cas de test et organisation de suites de tests Oui
Tests manuels Oui
Gestionnaire de tests (tests d’enregistrement et de lecture) Appareils Windows et émulateurs Android uniquement
Couverture du code n/a Non applicable, car les tests unitaires se produisent dans Unity et non dans Visual Studio, voir ci-dessous.
Tests unitaires sur votre code Dans Unity, mais pas Visual Studio Unity fournit son propre framework de test unitaire en tant que partie des outils de test Unity (Unity Asset Store). Les résultats des tests unitaires sont signalés dans Unity et ne sont pas exposés dans Visual Studio.
Utiliser l'automatisation de l'interface utilisateur pour tester votre code Non Les tests codés de l’interface utilisateur s’appuient sur des contrôles lisibles dans l’interface utilisateur de l’application ; Les applications Unity sont graphiques par nature et le contenu n’est donc pas lisible par les outils de test codés de l’interface utilisateur.

Améliorer la qualité du code

Lien de référence : Améliorer la qualité du code

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Analyser la qualité du code managé Oui Peut analyser le code de script C# dans Visual Studio.
Rechercher du code en double à l’aide de la détection de clones de code Oui Peut analyser le code de script C# dans Visual Studio.
Mesurer la complexité et la maintenance du code managé Oui Peut analyser le code de script C# dans Visual Studio.
Outils de performances Non Utilisez le profileur Unity (site web Unity).
Analyser les problèmes de mémoire .NET Framework Non Les outils Visual Studio n’ont pas de points d'intégration dans l’infrastructure Mono, comme c'est le cas avec Unity, pour le profilage. Utilisez le Unity Profiler (documentation Unity).

Gestion des versions

Lien de référence : Générer et mettre en production dans Azure Pipelines et TFS

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Gérer les processus de mise en production Oui
Déploiement sur des serveurs pour le chargement de version test via des scripts Oui
Charger dans l’App Store Partiel Les extensions sont disponibles pour automatiser ce processus pour certains magasins d’applications. Consultez Extensions pour Azure DevOps Services; par exemple, l’extension pour Google Play.

Surveiller avec HockeyApp

Lien de référence : Analyser avec HockeyApp

Caractéristique Pris en charge avec Unity Commentaires supplémentaires
Analyse des incidents, télémétrie et distribution bêta Oui HockeyApp est surtout utile pour gérer la distribution bêta et obtenir des rapports de crash.

Pour les données de télémétrie à partir de scripts C#, il est possible d’utiliser n’importe quelle infrastructure d’analyse, à condition qu’elle s’exécute sur la version de .NET utilisée par Unity. Toutefois, cela permet d’analyser uniquement dans les scripts de jeu et pas plus profondément dans le moteur Unity. Actuellement, il n’existe aucun plug-in pour Application Insights, mais les plug-ins sont disponibles pour d’autres solutions d’analytique telles que Unity Analytics et Google Analytics. Les services comme Unity Analytics qui comprennent la nature d’un projet Unity fourniront bien sûr une analyse beaucoup plus significative que les frameworks génériques.