Jaa


Utiliser Visual Studio avec Unity

Par défaut, Unity propose l’installation et l’utilisation d’un éditeur de développement (IDE) dénommé MonoDevelop. Ce dernier fournit les briques de base indispensables pour le développement de code : compilation, débogage, auto-completion,  documentation des APIs Unity, coloration syntaxique, synchronisation avec l’éditeur Unity. L’objet de ce billet n’est pas de rentrer dans une sempiternelle polémique afin savoir si tel ou tel IDE est meilleur que tel autre. Non mais voilà, lorsqu’on est habitué à utiliser Visual Studio, tout autre IDE peut paraître déroutant  :-)

Aussi je vais vous montrer dans cet article comment utiliser Visual Studio pour développer votre code Unity. Je pars sur le principe que vous possédez :

  • Un PC tournant sous Windows 7/8/8.1
  • Une version récente (2013 ou plus) de Visual Studio (Community & Express, Pro, Premium ou Ultimate)
  • Unity (version 4.x ou 5.x)

 

Sachez également que la version gratuite (Community & Express) de Visual Studio est compatible avec Unity : aucune excuse pour ne pas essayer.

L’utilisation de Visual Studio avec Unity nécessite l’installation d’un plugin initialement développé par la société SyntaxTree et qui a fait l’objet d’un rachat il y a bientôt un an par Microsoft.

image

Installation

Ce plugin est accessible en libre téléchargement depuis le site officiel https://unityvs.com/

Cliquez sur “Visual Studio 2013 Tools for Unity” comme indiqué ci-dessous :

image

Vous arriverez alors sur une page intermédiaire permettant de démarrer le téléchargement du fichier Visual Studio 2013 Tools for Unity.msi :

image

Une fois téléchargé, lancez l’installation du plugin en double-cliquant le fichier msi (assurez vous d’avoir fermé Unity au préalable). Le répertoire d’installation proposé par défaut est le suivant : C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\2013 . Vous pouvez bien sûr choisir un autre répertoire.

Configuration

L’étape suivante consiste à créer un nouveau projet sous Unity puis à importer le plugin via le menu Import Package / Visual Studio 2013 Tools comme indiqué sur la capture ci-dessous :

image

Note : si vous utilisez Unity 5.x, le sous menu “Visual Studio 2013 Tools” n’est pas présent. Pas de panique : il faut simplement sélectionner le sous menu Custom Package … et localisez le fichier Visual Studio 2013 Tools.unitypackage disponible dans le répertoire d’installation du plugin ( C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\2013 dans mon cas).

S’affiche alors la boite de dialogue suivante :

image

Laissez tout sélectionné par défaut et cliquez sur le bouton Import. Une fois importé, deux changements significatifs apparaissent dans l’éditeur Unity :

image

  • Un nouveau menu dénommé Visual Studio Tools permettant de générer le projet Visual Studio ainsi que de paramétrer le plugin
  • Un nouveau sous-répertoire dénommé UnityVS dans le répertoire de base Assets : il contient toute la plomberie pour faire le bridge entre l’éditeur Unity et Visual Studio (synchro, déboguage etc)

 

Note : si vous vous rendez dans le menu Edit / Préférences et que vous sélectionnez l’onglet External Tools, vous noterez que l’éditeur par défaut MonoDevelop a été remplacé par UnityVS comme indiqué ci-dessous :

unity_prefs

Votre environnement est maintenant prêt.

Utilisation

Dorénavant vous pouvez créer vos scripts C# depuis Unity. Lorsque vous double-cliquez sur un script Unity, cela ouvre automatiquement le projet Visual Studio sur le script sélectionné. Notez par ailleurs qu’il y a une synchronisation automatique entre l’éditeur Unity et Visual Studio : ajoutez un nouveau script sous Unity et retrouvez-le automatiquement sous le projet Visual Studio correspondant sans avoir besoin de relancer Visual Studio.

IntelliSense

Vous retrouvez bien sûr les fonctions d’aide contextuelle/auto-completion IntelliSense adaptée aux APIs Unity :

image

Debug

L’étape suivante consiste à déboguer vos scripts depuis Visual Studio tout en exécutant votre scène depuis Unity. Voici la procédure :

  • Ouvrez votre projet sous Visual Studio et positionnez un point d’arrêt (dans mon exemple, je positionne un point d’arrêt dans la méthode start() de mon unique script Main.cs rattaché à la caméra principale).
  • Connectez Visual Studio à l’instance d’Unity contenant votre scène à déboguer : pour cela localisez dans la partie inférieure droite de Visual Studio, une petite icône représentant une prise. S’ouvre alors une boite de dialogue listant les instances ouvertes d’Unity  et leur projet associé :

 

ConnectVSToUnity

Sélectionnez votre instance et validez le bouton OK.

  • Puis,  toujours dans Visual Studio, cliquez sur le bouton Attach to Unity : Visual Studio lance alors le mode Debug et attend.

image

  • Retournez dans Unity et lancez le player sur la scène correspondante. Dans mon exemple, Visual Studio va breaker dès le démarrage :

 

image

Aide en ligne

Autre fonctionnalité intéressante : accéder à la documentation en ligne des APIs Unity depuis Visual Studio, et ce, de manière contextuelle. Pour cela rien de plus simple : SyntaxTree a mappé l’appel de l’aide en ligne sur le raccourci clavier CTRL+H. Par exemple si je positionne mon curseur sur la classe MonoBehavior dans mon script Main.cs et que je tape ce raccourci clavier, j’obtiens la documentation de la classe MonoBehavior :

CallDocumentationFromVS

Si vous souhaitez mapper la documentation en ligne sur un autre raccourci clavier, aucun problème : sélectionnez le menu Tools / Options puis cliquez sur l’élément Keyboard ; dans le champ “Show commands containing”, saisissez le mot unity et sélectionnez la commande Help.UnityAPIReference :

CustomHelpCommand

Vous pouvez alors sélectionner un autre raccourci clavier dans la liste Shortcuts for selected command.

Conclusion

Voilà j’espère que cet article vous aura donné un bon aperçu de l’utilisation de Visual Studio pour coder et déboguer vos scripts Unity. Pour aller plus loin je vous invite à consulter la documentation en ligne où vous apprendrez par exemple à déboguer des DLLs externes.

Comments