288 votes

Les scripts Unity édités dans Visual Studio ne fournissent pas d'autocomplétion

Lorsque je veux modifier des scripts C# Unity, ils s'ouvrent dans Visual Studio. Ce dernier est censé fournir une complétion automatique pour tout le code lié à Unity, mais cela ne fonctionne pas.

Vous pouvez voir ici la fonctionnalité manquante :

Video of missing autocomplete feature

Comme on le voit, le transform n'ouvre pas le menu d'autocomplétion.

Version d'Unity : 5.5.2f1
Visual studio 2015
Visual Studio Tools for Unity est installé

2 votes

translate.google.com :) Faire une vidéo et la télécharger sur YouTube pour décrire l'erreur +1 xd

0 votes

Ok, A ll try... I have a Little problem with scripts. When I Lorsque j'écris des scripts C# pour Unity avec Visual Studio, j'ai l'impression de travailler dans le bloc-notes, il n'y a pas de "conseils" (correct ?) et je dois écrire très lentement. S'il vous plaît, regardez la vidéo. Au début, c'est la situation normale (du tutoriel), la deuxième partie est mon problème.

1 votes

Je dirais que votre question porte sur l'"autocomplétion", et non sur les infobulles.

633voto

Programmer Points 69203

Il n'y a pas d'autocomplétion car le script indique " Dossiers divers "au lieu du nom du projet. Regardez l'image ci-dessous qui provient de la vidéo de votre question :

enter image description here

Le " Dossiers divers "Ce message peut se produire pour de nombreuses raisons :

  1. Cela peut se produire lorsque vous ouvrez votre fichier Unity C# depuis un autre dossier au lieu de l'ouvrir depuis l'éditeur Unity.

  2. Cela peut également se produire parce que Unity s'est écrasé alors que Visual Studio était encore ouvert, ce qui a corrompu certains fichiers.

  3. Cela peut arriver parce que Unity a été fermé puis rouvert mais n'est plus connecté à Visual Studio. Lorsque Visual Studio est ouvert, vous obtenez " Dossiers divers " et pas d'autocomplétion.

  4. Cela peut se produire lorsque Outils Visual Studio pour l'unité n'est pas installé.

  5. Lorsque vous créez un script à partir d'Unity, ouvrez-le rapidement avant que Unity ne finisse de le traiter ou avant que l'animation de l'icône ronde ne finisse.


La plupart du temps, le redémarrage d'Unity et de Visual Studio devrait résoudre ce problème.

Je ne peux pas dire lequel est à l'origine du problème, mais je vais vous présenter la solution la plus probable pour le résoudre.

Correction Partie 1 :

  1. Télécharger et installer Outils Visual Studio pour l'unité de ce lien. Faites-le pendant que Unity et Visual Studio sont tous deux fermés.

  2. Depuis l'éditeur d'Unity, allez dans Modifier Préférences ... Outils externes . Sur le Éditeur externe de script dans le menu déroulant, changez-le en Visual Studio 2015 .

    enter image description here


Correction Partie 2 :

Si des fichiers C# nouvellement créés apparaissent comme Divers puis suivez les instructions ci-dessous :

  1. Depuis Visual Studio, allez dans Outils Options... Outils pour l'unité Divers . Sous Afficher l'icône de connectivité et le régler sur true puis redémarrez Visual Studio.

    enter image description here

  2. Lorsque vous redémarrez, l'icône de connexion devrait maintenant être disponible dans Visual Studio. Cliquez dessus, puis choisissez l'instance d'Unity à laquelle vous souhaitez vous connecter. L'icône rouge 'x' devrait maintenant se transformer en une icône marron cochée. Désormais, lorsque vous créez un nouveau fichier C# dans Unity, il devrait s'ouvrir sans dire Divers .

    enter image description here


Correction Partie 3 :

Toujours pas réparé ?

Réimporter le projet puis ouvrir le projet C#.

  1. Fermez Visual Studio.

  2. Dans Unity, réimporter le projet en allant à Actifs Réimporter tout .

    enter image description here

  3. Maintenant, ouvrez le projet dans Visual Studio en allant à Actifs Ouvrir un projet C# . Cela permettra de recharger le projet et de corriger les éventuels problèmes de fichiers de solution.

    enter image description here


Correction de la partie 4 :

Toujours pas réparé ?

Corrigez chaque fichier C# individuellement.

  1. Cliquez sur Afficher tous les fichiers icône.

    enter image description here

  2. Sélectionnez le script qui ne fait pas d'autocomplétion puis faites un clic droit et sélectionnez Inclure dans le projet .

    enter image description here


Correction de la partie 5 :

Pas encore fixé ?

Le mérite revient à chrisvarnz pour cette solution particulière qui semble avoir fonctionné pour plusieurs personnes.

  1. Fermer Visual Studio

  2. Allez dans le répertoire de votre projet et supprimez tous les fichiers générés par Visual Studio.

    Ce sont les extensions de fichiers à supprimer :

    • .csproj
    • .user
    • .sln

    Exemple :

    Disons que le nom de votre projet s'appelle Target_Shoot les fichiers à supprimer doivent ressembler à ceci :

    • Target_Shoot.csproj
    • Target_Shoot.Editor.csproj
    • Target_Shoot.Editor.csproj.user
    • Target_Shoot.Player.csproj
    • Target_Shoot.Player.csproj.user
    • Target_Shoot.sln

    Ne supprimez rien d'autre.

  3. Double-cliquez à nouveau sur le script. de Unity ce qui devrait générer un nouveau fichier Visual Studio puis ouvrir Visual Studio. Cela peut résoudre votre problème.


Correction de la partie 6 :

Si cela ne fonctionne pas, vérifiez si vous avez ce erreur :

La tâche "GetReferenceNearestTargetFrameworkTask" n'a pas été trouvée.

  1. Installer Gestionnaire de paquets Nuget de ici .

  2. Redémarrer Visual Visual.

Voir ce répondre pour plus d'informations.

11 votes

Merci pour le pointeur de fichiers divers ! Fermer VS, supprimer les projets VS et le sln, puis double-cliquer sur un script dans Unity (donc régénérer les fichiers du projet et rouvrir VS) a réglé le problème pour moi. Je recommanderais d'essayer cela avant le bouton "réimporter tout" car c'est le midi/la nuit pour les projets non triviaux.

3 votes

C'est un bon conseil. J'espère que tous ceux qui lisent ces lignes pourront voir ce commentaire

1 votes

Ce problème est le plus souvent dû à la création de nouveaux scripts ou à leur déplacement vers des dossiers différents dans Unity. Si le redémarrage d'Unity et de VS ne résout pas le problème, je supprime simplement le fichier *.csproj et *.sln et commencer Unity than. Cela fonctionne généralement

19voto

Michaël Nguyen Points 193

J'ai trouvé un autre moyen de résoudre ce problème de manière plus pratique :

  1. Sélectionnez le fichier cassé dans l'explorateur de solutions.
  2. Ouvrez ses propriétés.
  3. Faites passer le champ "Build Action" de "Compile" à "None".
  4. Puis remettez-le sur "Compiler".

Cela va tuer la synchronisation entre Unity et Visual Studio en quelque sorte.

La prochaine fois que Visual Studio rechargera le projet, il affichera un avertissement. Il suffit de cliquer sur "Discard".

12voto

Xonatron Points 2799

Déchargez et rechargez le projet, dans Visual Studio :

  • cliquez droit sur votre projet dans Explorateur de solutions
  • sélectionnez Décharger le projet
  • sélectionnez Projet de rechargement

Corrigé !

J'ai trouvé cette solution qui fonctionne le mieux (la plus facile), ayant rencontré le problème plusieurs fois.

Source : https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-Android-projects/

2 votes

Merci pour votre aide ! Cela a fonctionné, mais j'ai l'impression que nous sommes de retour dans les années 90 et que nous devons redémarrer Windows, sauf que cette fois, c'est VS 2017.

8voto

GLeBaTi Points 361
  1. Sélectionnez le projet dans Visual Studio
  2. Cliquez sur le bouton "Rafraîchir".

enter image description here

3 votes

Ouah ! Rien d'autre n'a aidé pour moi ; Réinstallation de VS, même réinstallation de Unity pour qu'il réinstalle VS, suppression des fichiers .sln et .cjsproj pour qu'ils soient régénérés. rien n'a aidé mais finalement un simple clic dans l'explorateur de solutions pour montrer les dossiers a semblé le faire :o

4voto

singleton Points 141

J'ai rencontré les mêmes problèmes aujourd'hui en utilisant Visual Studio 2017 15.4.5 avec Unity 2017.

J'ai pu résoudre le problème en faisant un clic droit sur le projet dans Visual Studio et en changeant le framework cible de 3.5 à 4.5.

J'espère que cela aidera toute personne se trouvant dans une situation similaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X