La saisie semi-automatique ne fonctionne pas dans Visual Studio

151

J'ai un petit problème avec les scripts. Quand j'écris des scripts C # pour Unity avec Visual studio, il semble que je travaille dans le bloc-notes, il n'y a pas d' auto-complétion (correct?) Et je dois l'écrire très lentement.

S'il vous plaît, regardez la vidéo. Au début, c'est la situation normale (à partir du tutoriel), la deuxième partie montre mon problème.

Vidéo avec problème

Par exemple, la transformclasse n'affiche ni suggestion ni saisie semi-automatique.

Image avec problème:

entrez la description de l'image ici

Version Unity: 5.5.2f1
Visual Studio 2015
Visual Studio Tools pour Unity est installé

CorbenDalas
la source
1
translate.google.com :) Création d'une vidéo et mise en ligne sur YouTube pour décrire l'erreur +1 xd
Timon Post
Ok, en ll try... I have a Little problem with scripts. When Iécrivant des scripts C # pour Unity avec Visual Studio, il semble que je travaille dans le bloc-notes, il n'y a pas de "conseils" (correct?) Et je dois l'écrire très lentement. S'il vous plaît, regardez la vidéo. Au début, c'est une situation normale (du tutoriel), la deuxième partie est mon problème.
CorbenDalas
1
Je dirais que vous posez des questions sur la «saisie semi-automatique», pas sur les info-bulles.
Martijn Pieters
Quelle version de Visual Studio et quelle version d'Unity?
Programmeur
Version Unity: 5.5.2f1 / Visual studio 2015 / Visual Studio Tools for Unity est installé
CorbenDalas

Réponses:

343

Il n'y a pas d'auto-complétion car le script dit " Fichiers divers " au lieu du nom du projet. Jetez un œil à l'image ci-dessous qui provient de la vidéo dans votre question:

entrez la description de l'image ici

Le message " Fichiers divers " peut apparaître pour plusieurs raisons:

1 .Il peut se produire lorsque vous ouvrez votre fichier unité C # d'un autre dossier au lieu de l' ouverture de l' unité éditeur.

2 .Cette peut également se produire parce que l' unité est écrasé alors que Visual Studio est encore ouvert corrompt donc certains fichiers.

3. Cela peut se produire car Unity a été fermé puis rouvert mais n'est plus connecté à Visual Studio. Lorsque Visual Studio est ouvert, vous obtenez « Fichiers divers » et aucune saisie semi-automatique.

4. Cela peut se produire lorsque Visual Studio Tools for unity n'est pas installé.

5 .Lorsque vous créez un script à partir de l' unité puis ouvrez rapidement avant la fin l' unité de traitement ou avant l'arrivée stuff animation icône ronde animant.


La plupart du temps, le redémarrage de 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 couvrir la solution la plus probable pour résoudre ce problème.

Correction de la partie 1 :

1 .Télécharger et installer Visual Studio Tools pour l' unité de ce lien. Effectuez cette opération lorsque Unity et Visual Studio sont tous deux fermés.

2 .Depuis Unity Editor, allez dans Edition -> Préférences ... -> Outils externes . Dans le menu déroulant de l' éditeur de script externe , remplacez-le par Visual Studio 2015 .

entrez la description de l'image ici


Correction de la partie 2 :

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

1 .De Visual Studio, allez à Outils -> Options de ... -> Outils pour l' unité -> Divers . Sous Afficher l'icône de connectivité , définissez-le pour trueredémarrer Visual Studio.

entrez la description de l'image ici

2 .Lorsque vous re-démarrer, icône de connexion doit maintenant être disponible dans Visual Studio. Cliquez dessus, puis choisissez l'instance Unity à laquelle vous connecter. L'icône rouge «x» devrait maintenant se transformer en icône de coche marron. Maintenant, lorsque vous créez un nouveau fichier C # dans Unity, il devrait s'ouvrir sans dire Divers .

entrez la description de l'image ici


Correction de la partie 3 :

Toujours pas fixé?

Réimportez le projet, puis ouvrez le projet C #.

1 .Fermez Visual Studio.

2 .Depuis Unity, réimportez le projet en accédant à Actifs -> Réimporter tout .

entrez la description de l'image ici

3. Maintenant, ouvrez le projet dans Visual Studio en accédant à Assets -> Open C # Project . Cela rechargera le projet et corrigera les éventuels problèmes de fichier de solution.

entrez la description de l'image ici


Correction de la partie 4 :

Toujours pas fixé?

Corrigez chaque fichier C # individuellement.

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

entrez la description de l'image ici

2. Sélectionnez le script qui n'effectue pas de saisie semi-automatique, puis cliquez avec le bouton droit et sélectionnez Inclure dans le projet .

entrez la description de l'image ici


Fix partie 5 :

Pas encore corrigé?

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

1 .Fermez Visual Studio

2. Accédez au répertoire de votre projet et supprimez tous les fichiers Visual Studio générés.

Voici les extensions de fichiers à supprimer:

  • .csproj
  • .utilisateur
  • .sln

Exemple:

Disons que le nom de votre projet s'appelle "Target Shoot" , voici à quoi devraient ressembler les fichiers à supprimer:

  • Cible Shoot.csproj
  • Target Shoot.Editor.csproj
  • Cible Shoot.Editor.csproj.user
  • Cible Shoot.Player.csproj
  • Cible Shoot.Player.csproj.user
  • Target Shoot.sln

Ne supprimez rien d'autre.

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


Correction de la partie 6 :

Si cela ne fonctionne pas, vérifiez si vous rencontrez cette erreur:

La tâche "GetReferenceNearestTargetFrameworkTask" est introuvable

1 .install Nuget PackageManager d' ici .

2. Redémarrez Visual Visual.

Voir cette réponse pour plus d'informations.

Programmeur
la source
4
Merci pour le pointeur de fichiers divers! Fermer VS, supprimer les projets VS et sln, puis double-cliquer sur un script dans Unity (donc régénérer les fichiers de projet et rouvrir VS) a résolu le problème pour moi. Je recommanderais d'essayer cela avant le bouton "réimporter tout" car c'est déjeuner / nuit pour des projets non triviaux.
chrisvarnz
2
C'est un bon conseil. J'espère que toute personne lisant ceci pourra voir ce commentaire
Programmeur
Cela est souvent dû à la création de nouveaux scripts ou à leur déplacement vers différents dossiers dans Unity. Chaque fois que le redémarrage de l' unité et VS ne résout pas, je SIMOLY également supprimer les *.csprojet *.slnfichiers et commencer à l' unité que. Cela fonctionne généralement
derHugo
1
La solution @chrisvarnz a fonctionné pour moi après avoir essayé toutes ces autres suggestions.
gollumullog
1
@gollumullog Bien. Depuis que cela a fonctionné pour plusieurs personnes, j'ai mis à jour ma réponse pour l'inclure également.
Programmeur
41

Essaye ça,

Dans Unity Editor, allez dans Menu, cliquez sur Edit -> Preferences -> External Tools -> External Script Editor. Définissez-le sur Visual Studio (votre version installée de VS).

Maintenant, dans la barre de menus, allez dans Modifier -> Paramètres du projet -> Paramètres du lecteur -> Autres paramètres -> Sous Configuration -> Vérifier le niveau de compatibilité de l'API -> Modifiez-le en version .Net installée. Dans mon cas, je l'ai réglé sur .Net 4.x

Maintenant, si Visual Studio est déjà en cours d'exécution, accédez à Visual Studio, il vous demandera de recharger le projet. Rechargez le projet. Vérifiez si cela fonctionne, sinon fermez Visual Studio. Maintenant, ouvrez le fichier cs à partir de Unity Editor, et maintenant cela devrait fonctionner.

Juned Khan Momin
la source
Pareil pour moi, merci! J'ai tout essayé mais seulement cela l'a corrigé.
Shadowmak le
1
c'est la VRAIE réponse. Cela doit être au sommet!
Mark Purnell
Cela a fonctionné pour moi aussi. De plus, une chose supplémentaire que j'ai faite dans Unity 2020.2.0a13 a été de décocher et de vérifier à nouveau la marque dans Modifier / Paramètres du projet / Lecteur / Autres paramètres: API graphiques automatiques. Après le redémarrage de Visual Studio, la saisie semi-automatique était de retour: D
Ant100
14

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. Basculez le champ "Build Action" de "Compile" à "None".
  4. Revenez ensuite à "Compiler".

Cela supprimera d'une manière ou d'une autre la synchronisation entre Unity et Visual Studio.

La prochaine fois que Visual Studio rechargera le projet, il affichera un avertissement. Cliquez simplement sur "Supprimer".

Michaël Nguyen
la source
7

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

  • cliquez avec le bouton droit sur votre projet dans l' Explorateur de solutions
  • sélectionnez Décharger le projet
  • sélectionnez Recharger le projet

Fixé!

J'ai trouvé que cette solution fonctionnait le mieux (la plus simple), après avoir rencontré le problème plusieurs fois.

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

Xonatron
la source
Merci pour l'aide! Cela a fonctionné, mais je pense que nous sommes de retour dans les années 90 et que nous devons redémarrer Windows, mais cette fois-ci, c'est VS 2017.
user3053247
4
  1. Sélectionnez un projet dans Visual Studio
  2. Cliquez sur le bouton "Actualiser"

entrez la description de l'image ici

GLeBaTi
la source
1
Whoa! Rien d'autre n'a aidé pour moi; Réinstaller VS, même réinstaller Unity pour qu'il réinstallé VS, supprimant les fichiers .sln et .cjsproj afin qu'ils soient régénérés. rien n'a aidé .. mais finalement un simple clic dans l'explorateur de solutions pour afficher les dossiers semblait le faire: o
antont
3

Si vous avez fait tout ce qui précède et que vous ne travaillez toujours pas, essayez ceci: Remarque: vous devriez avoir mis à jour VS. Capture d'écran de Visual Studio

Accédez à Unity> éditer> préférence> Outils externes> éditeur de script externe. Capture d'écran Unity D'une manière ou d'une autre, pour moi, je n'avais pas sélectionné "studio visuel" pour l'éditeur de script externe et cela ne fonctionnait pas. Dès que j'ai sélectionné ceci et double-cliqué sur le fichier c # de unity, cela a commencé à fonctionner.

J'espère que cela vous aide aussi.

yOhaan
la source
2

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 cliquant avec le bouton droit sur le projet dans Visual Studio et en modifiant le framework cible de 3.5 à 4.5.

J'espère que cela aide quelqu'un d'autre dans un scénario similaire.

singleton
la source
2

Deux options alternatives:

Réparer 1

@singleton m'a orienté dans cette direction. Au lieu de modifier la cible dans Visual Studio, vous devez la modifier dans Unity car le projet est généré automatiquement.

Supprimez d'abord les fichiers Visual Studio générés automatiquement: .csproj .user .sln

Ensuite, depuis Unity, allez dans PlayerSettings et sous 'Other Settings', changez la 'Scripting Runtime Version' de Stable 3.5 à Experimental 4.6.

Cependant, cela ne l'a pas résolu pour moi.

Réparer 2

J'ai remarqué que toutes les références au code lié à Unity étaient marquées d'un avertissement jaune. Vérifiez vos journaux d'erreurs et voyez si c'est le cas. En particulier, voyez si vous obtenez l'erreur suivante: getreferenceNearestTargetframeworkTask

Si tel est le cas, essayez: redémarrez Visual Studio Installer.

Dans les outils de construction 2017, cliquez sur Modifier,

Assurez-vous que les «cibles Nuget et tâches de construction» sont cochées. Cela devrait être coché si vous cliquez sur le développement de la plateforme Windows universelle.

ickydime
la source
1

J'ai trouvé ma solution en créant le fichier .cs à partir de Visual Studio lui-même au lieu de l'éditeur Unity

  • clic droit sur le dossier du projet dans l'explorateur de solutions
  • ajouter> nouvel élément
  • tapez "unité" dans le champ de recherche en haut à droite
  • sélectionnez "CSharp MonoBehaviour"
  • nommez votre script en bas et cliquez sur Ajouter
Fredy Rommy Sianturi
la source
1
Que faire si vous avez déjà créé les scripts mais que soudainement, ce problème survient, allez-vous supprimer tous les scripts et les recréer à partir de Visual Studio?
Programmeur
@Programmer eh bien, j'utiliserais votre solution de la partie 4 pour corriger le script déjà d'erreur, mais j'utilise toujours Visual Studio pour créer un nouveau script car aucune de votre solution n'a empêché le nouveau script d'obtenir une erreur à moins que je ne crée le fichier à partir de Visual Studio
Fredy Rommy Sianturi
1

Dans mon cas, la version .net correcte n'a pas été installée sur mon PC. J'installe le .net 3.5 sur mon PC et cela a fonctionné pour moi.

Habibur Rahman Ovie
la source
Votre réponse m'a donné l'idée de changer le niveau de compatibilité de l'API dans les paramètres de Unity Player de .Net 2.0 à .Net 4.x. Et puis rechargez le projet dans Visual Studio. Maintenant, tout fonctionne bien.
Juned Khan Momin
1

Le problème auquel j'ai été confronté était que le projet C # ciblait un autre .NET Framework (4.7.2), alors que le projet Unity avait une cible différente (.NET 3.5).

J'ai corrigé cela en changeant la cible dans Unity comme-

Fichier -> Paramètres de construction -> Paramètres du lecteur -> Autres paramètres -> Niveau de compatibilité API: définissez-le sur la version .NET que vous avez déjà installée (vérifiez votre version .NET ici ). Dans mon cas, c'était 4.x

Après cela, Visual Studio a parfaitement fonctionné et la correction automatique a également été corrigée.

rkbroach
la source
Cela a fonctionné pour moi. J'ai changé mon niveau de compatibilité API en .Net 4.x, puis Visual Studio a demandé à recharger le projet. J'ai rechargé le projet. Ensuite, j'ai fermé Visual Studio, ouvert le fichier cs de Unity Editor et maintenant tout fonctionne bien.
Juned Khan Momin
1

Essayez d'appuyer sur Ctrl + Alt + Space(qui bascule entre les modes de suggestion et d'achèvement standard)

maitrunghieuit
la source
0

Pour Windows ou macOS:

Téléchargez / installez l' IDE de Visual Studio (avec Unity Tools)

Lors de l'installation, assurez-vous d'inclure l'installation de

Développement de jeux avec Unity

entrez la description de l'image ici

Ensuite, en utilisant Unity (vous pouvez double-cliquer sur l'un de vos fichiers C #), ouvrez un nouveau projet C # et l'IDE Visual Studio devrait s'ouvrir avec votre nouvelle structure de projet.

entrez la description de l'image ici

À partir de là, vous devriez pouvoir voir ce que vous recherchez.

Par exemple:

entrez la description de l'image ici

entrez la description de l'image ici

Pour Linux (suggestion):

Essayez Monodevelop - Informations supplémentaires , il fournit des conseils / compléments de code.

Brien Foss
la source
0

J'ai résolu d'installer la même version de .NET sur WIN que celle configurée dans mon projet Unity. (Paramètres du lecteur)

Bruno Araujo
la source
0

Ma saisie semi-automatique n'a pas non plus fonctionné car Visual Studio Tools pour Unity n'était pas installé. Ainsi, après avoir installé cela, supprimez les fichiers Visual Studio générés automatiquement. D'autres ont dit que vous ouvrez à nouveau le fichier et que le problème est résolu, mais ce n'est pas le cas.

L'astuce est: au lieu de double-cliquer normalement sur le fichier, vous devez ouvrir le fichier C # depuis Unity par un clic droit puis "Ouvrir un projet C #".

Thayakorn Rakwetpakorn
la source
0

Aucune des solutions ci-dessus n'a fonctionné pour moi. Cependant, j'ai ouvert le fichier ProjectName.CSPROJ et ajouté manuellement le nouveau fichier et cela a fonctionné comme un charme

Sebinjude Shaolin
la source
0
  • Accédez à Options dans le menu Outils, puis sélectionnez Documents dans le nœud Environnement. (Si Documents n'apparaît pas dans la liste, sélectionnez Afficher tous les paramètres dans la boîte de dialogue Options.)
  • Cochez "Fichiers divers dans l'Explorateur de solutions" et cliquez sur OK. (Cette option affiche le nœud "Fichiers divers" dans l'Explorateur de solutions. Les fichiers divers sont des fichiers qui ne sont pas associés à un projet ou une solution, mais qui peuvent apparaître dans l'Explorateur de solutions pour votre commodité si vous cochez cette option.)
  • Localisez votre fichier dans l'Explorateur de solutions sous «Fichiers divers». Ensuite, faites glisser et déposez votre fichier là où il devrait appartenir et le tour est joué! Cela copiera le fichier là où vous le déposez. Vous pouvez maintenant supprimer en toute sécurité l'ancien fichier dans le dossier Fichiers divers si vous le souhaitez

Crédits: https://stackoverflow.com/a/47662523/10471480


Si le dossier Scripts n'est pas visible:

  • Cliquez sur "Afficher tous les fichiers" dans l'Explorateur de solutions
  • Recherchez le dossier Scripts.
  • Faites un clic droit sur les scripts et sélectionnez "Inclure dans le projet"
Mangaldeep Pannu
la source
0

Ce qui m'a fonctionné, c'est que j'ai copié tout le code dans la classe cassée et supprimé ce fichier. Ensuite, j'ai ouvert un fichier vide et collé.

Résultat : de beaux points forts de la syntaxe sont revenus!

Eray Alparslan
la source
0

Gardez à l'esprit que si vous utilisez l'outil ReSharper, il remplacera IntelliSense et affichera son propre. Pour changer cela, sur VS, accédez à Extensions -> ReSharper -> Options -> IntelliSense -> Général, puis choisissez Visual Studio et non ReSharper.

user11897507
la source
0

Avant de redémarrer et / ou de réinstaller VS, essayez d'abord d'ouvrir un autre de vos projets pour voir si Intellisence fonctionne, si c'est le cas, le problème réside probablement dans votre projet actuel. Premièrement, la victime la plus probable serait les paquets NUGET avec des mises à jour en attente. Pour résoudre ce problème,

  1. Faites un clic droit sur les références
  2. Procédez à la gestion des packages NUGET sous les packages NUGET
  3. procéder aux mises à jour Installer les mises à jour et revérifier Intellisence
David.Ambuka
la source
0

J'ai essayé tout cela, mais j'ai fini par découvrir que je devais cliquer avec le bouton droit sur la solution dans l'Explorateur de solutions et ajouter des éléments existants et trouver le fichier d'assemblage C # dans l'Explorateur de Windows. Il semble y avoir un milliard de problèmes différents qui vous donnent cette erreur, c'est probablement la solution la plus simple. Si vous double-cliquez sur votre script depuis l'unité, il ne semble pas faire glisser l'assemblage.

Kevin Martin
la source
0

l'une des méthodes ci-dessus fonctionne pour moi et je viens de trouver une solution à ce problème,
1. Tout d'abord, allez dans le répertoire du projet et supprimez le .slnfichier
2. Deuxièmement, allez à l'unité et double-cliquez sur votre script. Ensuite, Visual Studio sera ouvert avec une erreur, entrez la description de l'image ici

  1. Cliquez ensuite sur ok et fermez l'éditeur Visual Studio.
  2. Enfin, éteignez votre Windows Defender, puis accédez au répertoire de votre projet et il y aura un .csprojfichier. Double-cliquez simplement et ouvrez-le à partir de votre éditeur Visual Studio et ouvrez le dossier scripts dans le dossier assets et ouvrez les scripts et l'auto-complétion fonctionnera parfaitement.
Indrajith Ekanayake
la source
0

Mise à jour 2020 avec Visual Studio Community 2019 et Unity 2019.3:

1) Ouvrez le programme d'installation de Visual Studio en tant qu'administrateur, sélectionnez pour modifier votre installation actuelle et ajoutez "Développement de jeux pour Unity"

2) Si vous ajoutez un nouveau script c # dans Unity maintenant et que vous l'ouvrez (automatiquement) avec Visual Studio, il n'est pas décrit comme "Divers" en haut de la fenêtre mais avec "Assembly-CSharp" et la saisie semi-automatique fonctionne.

Andi Schroff
la source
0

Une autre solution possible:

  1. Dans la fenêtre du projet, cliquez sur le dossier Assets
  2. Faites un clic droit et créez -> Script C #
  3. Double-cliquez dessus et attendez.

Pour une raison quelconque, ce travail.

Kale_Surfer_Dude
la source
-1

Essayez avec une combinaison: Ctrl + Alt + Space

Barna Kadar
la source