wake-up-neo.net

Autovervollständigung funktioniert nicht in Visual Studio

Ich habe ein kleines Problem mit Skripten. Wenn ich C # -Skripte für Unity with Visual Studio schreibe, scheint es, als würde ich in Notepad arbeiten. Es gibt keine Autocompletion (richtig?) Und ich muss es sehr langsam schreiben. 

Bitte schauen Sie sich das Video an. Zu Beginn ist die normale Situation (aus dem Tutorial), der zweite Teil zeigt mein Problem. 

Video mit Problem

Beispielsweise zeigt die transform -Klasse keinen Vorschlag oder keine automatische Vervollständigung.

Bild mit Problem:

 enter image description here

Unity-Version: 5.5.2f1
Visual Studio 2015
Visual Studio Tools für Unity ist installiert

54
CorbenDalas

Es findet keine automatische Vervollständigung statt, da das Skript " Miscellaneous Files" anstelle des Namens des Projekts angibt. Sehen Sie sich das Bild unten an, das aus dem Video in Ihrer Frage stammt:

enter image description here

Die Meldung " Verschiedene Dateien" kann aus vielen Gründen auftreten:

1 Dies kann passieren, wenn Sie Ihre Unity C # -Datei aus einem anderen Ordner öffnen, anstatt sie im Unity Editor zu öffnen.

2 Dies kann auch passieren, weil Unity abgestürzt ist, während Visual Studio noch geöffnet ist, wodurch einige Dateien beschädigt werden.

3 Dies kann passieren, weil Unity geschlossen und dann wieder geöffnet wurde, aber nicht mehr mit Visual Studio verbunden ist. Beim Öffnen von Visual Studio erhalten Sie " Miscellaneous Files" und keine automatische Vervollständigung.

4 Dies kann passieren, wenn Visual Studio Tools for Unity nicht installiert ist.

5 Wenn Sie ein Skript aus Unity erstellen, öffnen Sie es schnell, bevor Unity die Verarbeitung beendet oder bevor die Animation der runden Symbole abgeschlossen ist.


In den meisten Fällen sollte dies durch einen Neustart von Unity und Visual Studio behoben werden.

Ich kann nicht sagen, welches Problem das Problem verursacht, aber ich werde die wahrscheinlichste Lösung zur Behebung dieses Problems finden.

Fix Teil 1 :

1 . Downloaden und installieren Sie Visual Studio Tools für Unity von this link. Führen Sie dies aus, während Unity und Visual Studio geschlossen sind.

2 . Wechseln Sie im Unity Editor zu Bearbeiten -> Einstellungen ... -> Externe Tools. Ändern Sie dies im Dropdown-Menü External Script Editor in Visual Studio 2015.

enter image description here


Fix Teil 2 :

Wenn neu erstellte C # -Dateien als Verschiedenes angezeigt werden, befolgen Sie die nachstehenden Anweisungen:

1 . Wechseln Sie in Visual Studio zu Tools -> Optionen ... -> Werkzeuge für die Einheit -> Verschiedenes. Setzen Sie es unter Verbindungssymbol anzeigen auf true und starten Sie Visual Studio neu.

enter image description here

2 Wenn Sie neu starten, sollte das Verbindungssymbol jetzt in Visual Studio verfügbar sein. Klicken Sie darauf und wählen Sie die Unity-Instanz aus, zu der eine Verbindung hergestellt werden soll. Das rote 'x' Symbol sollte sich nun in ein braunes Häkchensymbol verwandeln. Wenn Sie jetzt eine neue C # -Datei in Unity erstellen, sollte diese automatisch geöffnet werden Verschiedenes.

enter image description here


Fix Teil 3 :

Immer noch nicht behoben?

Projekt erneut importieren und dann C # -Projekt öffnen.

1 Schließen Sie Visual Studio.

2 . In Unity importieren Sie das Projekt erneut, indem Sie zu Assets - gehen. -> Alles erneut importieren.

enter image description here

3 Öffnen Sie nun das Projekt in Visual Studio, indem Sie zu Assets wechseln. -> C # -Projekt öffnen. Dadurch wird das Projekt neu geladen und mögliche Probleme mit der Lösungsdatei behoben.

enter image description here


Fix Teil 4 :

Immer noch nicht behoben?

Korrigieren Sie jede C # -Datei einzeln.

1 . Klicken Sie auf Show All Files.

enter image description here

2 Wählen Sie das Skript aus, das nicht automatisch vervollständigt wird, klicken Sie mit der rechten Maustaste und wählen Sie In Projekt einschließen.

enter image description here


Fix Teil 5 :

Noch nicht behoben?

Dank geht an chrisvarnz für diese spezielle Lösung, die anscheinend für mehrere Personen funktioniert hat.

1 Schließen Sie Visual Studio

2 Gehen Sie in Ihr Projektverzeichnis und löschen Sie alle generierten Visual Studio-Dateien.

Dies sind die zu löschenden Dateierweiterungen:

  • .csproj
  • .Benutzer
  • .sln

Beispiel:

Angenommen, der Name Ihres Projekts lautet "Target Shoot". So sollten die zu löschenden Dateien aussehen:

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

Löschen Sie nichts anderes.

3 Doppelklicken Sie erneut auf das Skript in Unity , das neu generiert werden soll Visual Studio-Datei öffnen Sie dann Visual Studio. Dies kann Ihr Problem lösen.


Fix Teil 6 :

Wenn dies nicht funktioniert, überprüfen Sie, ob this error vorliegt:

Die Task "GetReferenceNearestTargetFrameworkTask" wurde nicht gefunden

1 . Installieren Sie Nuget PackageManager von hier .

2 Starten Sie Visual Visual neu.

Siehe this answer für weitere Informationen.

187
Programmer

Ich habe einen anderen Weg gefunden, um dieses Problem auf eine bequemere Weise zu beheben:

  1. Wählen Sie die beschädigte Datei im Projektmappen-Explorer aus.
  2. Öffnen Sie die Eigenschaften.
  3. Wechseln Sie das Feld "Build Action" von "Compile" zu "None".
  4. Dann wechseln Sie wieder auf "Übersetzen".

Dadurch wird die Synchronisierung zwischen Unity und Visual Studio irgendwie beendet.

Wenn Visual Studio das nächste Mal das Projekt erneut lädt, wird eine Warnmeldung angezeigt. Klicken Sie einfach auf "Verwerfen".

14
Michaël Nguyen

Laden Sie das Projekt in Visual Studio herunter und laden Sie es erneut:

  • klicken Sie mit der rechten Maustaste auf Ihr Projekt im Solution Explorer.
  • wähle Projekt entladen
  • wähle Projekt neu laden

Fest!

Ich fand diese Lösung am besten (am einfachsten), nachdem ich das Problem mehrmals getroffen hatte.

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

7
Xonatron
  1. Wählen Sie ein Projekt in Visual Studio aus 
  2. Klicken Sie auf die Schaltfläche "Aktualisieren"

 enter image description here

4
GLeBaTi

Ich habe heute dieselben Probleme mit Visual Studio 2017 15.4.5 mit Unity 2017.

Ich konnte das Problem beheben, indem Sie in Visual Studio mit der rechten Maustaste auf das Projekt klicken und das Zielframework von 3.5 auf 4.5 ändern.

Ich hoffe, das hilft allen anderen in einem ähnlichen Szenario.

2
singleton

Zwei alternative Optionen:

Fix 1

@singleton zeigte mir in diese Richtung. Anstatt das Ziel in Visual Studio zu ändern, sollten Sie es in Unity ändern, da das Projekt automatisch generiert wird.

Löschen Sie zunächst die automatisch generierten Visual Studio-Dateien: . csproj . Benutzer . sln

Gehen Sie dann in Unity zu PlayerSettings, und ändern Sie unter "Other Settings" die "Scripting Runtime-Version" von Stable 3.5 in Experimental 4.6.

Das hat es jedoch nicht für mich behoben. 

Fix 2

Ich habe bemerkt, dass alle Verweise auf Unity-Code mit einer gelben Warnung gekennzeichnet waren. Überprüfen Sie Ihre Fehlerprotokolle und prüfen Sie, ob dies der Fall ist. Überprüfen Sie insbesondere, ob der folgende Fehler angezeigt wird: getreferenceNearestTargetframeworkTask 

Wenn ja, versuchen Sie Folgendes: Starten Sie Visual Studio Installer erneut.

Klicken Sie in den Build-Tools 2017 auf Ändern,

Stellen Sie sicher, dass "Nuget-Ziele und Build-Aufgaben" angekreuzt sind. Dies sollte angekreuzt werden, wenn Sie auf Universal Windows Platform-Entwicklung klicken. 

2
ickydime

ich habe meine Lösung gefunden, indem ich die .cs-Datei aus Visual Studio selbst erstellt habe, anstatt aus Unity Editor

  • klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektordner
  • hinzufügen> Neues Element
  • geben Sie "unity" in das Suchfeld oben rechts ein
  • wähle "CSharp MonoBehaviour"
  • benennen Sie Ihr Skript unten und klicken Sie auf Hinzufügen

Versuchen Sie, Ctrl + Alt + Space zu drücken (mit dem Sie zwischen dem Vorschlagsmodus und dem Standardabschlussmodus wechseln können).

1
maitrunghieuit
  • Gehen Sie im Menü Extras auf Optionen und wählen Sie dann im Knoten Umgebung den Eintrag Dokumente. (Wenn Dokumente nicht in der Liste angezeigt werden, wählen Sie Alle Einstellungen im Dialogfeld Optionen anzeigen.)
  • Aktivieren Sie "Verschiedene Dateien im Projektmappen-Explorer" und klicken Sie auf "OK". (Diese Option zeigt den Knoten "Verschiedene Dateien" im Projektmappen-Explorer an. Bei anderen Dateien handelt es sich um Dateien, die keinem Projekt oder einer Projektmappe zugeordnet sind, die aber im Projektmappen-Explorer angezeigt werden, wenn Sie diese Option aktivieren.)
  • Suchen Sie Ihre Datei im Projektmappen-Explorer unter "Verschiedene Dateien". Dann ziehen Sie Ihre Datei per Drag & Drop dorthin, wo sie hingehören soll und voila! Dadurch wird die Datei an den Ort kopiert, an dem Sie sie ablegen. Sie können jetzt die ältere Datei im Ordner Miscellaneous Files sicher löschen, wenn Sie dies wünschen

Gutschriften: https://stackoverflow.com/a/47662523/10471480


Falls der Skriptordner nicht sichtbar ist:

  • Klicken Sie im Projektmappen-Explorer auf "Alle Dateien anzeigen"
  • Suchen Sie den Ordner "Scripts".
  • Klicken Sie mit der rechten Maustaste auf Skripts und wählen Sie "In Projekt einbeziehen".
0

Meine Autovervollständigung funktionierte auch nicht, weil Visual Studio Tools für Unity nicht installiert war. Löschen Sie nach der Installation die automatisch generierten Visual Studio-Dateien. Andere sagten, Sie öffnen die Datei erneut und das Problem ist gelöst, aber nicht.

Der Trick ist: Statt normalerweise auf die Datei zu doppelklicken, müssen Sie die C # -Datei von Unity aus öffnen, indem Sie mit der rechten Maustaste klicken und dann "C # -Projekt öffnen".

Versuche dies,

Klicken Sie im Unity-Editor im Menü auf Bearbeiten -> Einstellungen -> Externe Tools -> Externer Skript-Editor. Setzen Sie es auf Visual Studio (Ihre installierte Version von VS).

Gehen Sie nun in der Menüleiste zu Bearbeiten -> Projekteinstellungen -> Player-Einstellungen -> Andere Einstellungen -> Unter Konfiguration -> API-Kompatibilität überprüfen -> Ändern Sie es auf Ihre installierte .Net-Version. In meinem Fall habe ich es auf .Net 4.x gesetzt

Wenn Visual Studio bereits ausgeführt wird, rufen Sie Visual Studio auf, um das Projekt neu zu laden. Laden Sie das Projekt neu. Überprüfen Sie, ob es funktioniert, oder schließen Sie Visual Studio. Öffnen Sie jetzt die cs-Datei aus dem Unity-Editor, und jetzt sollte es funktionieren.

0

Ich habe alle diese Methoden ausprobiert und festgestellt, dass ich mit der rechten Maustaste auf die Lösung im Projektmappen-Explorer klicken und vorhandene Elemente hinzufügen und die C # -Baugruppendatei im Windows-Explorer suchen musste. Es scheint eine Unmenge verschiedener Probleme zu geben, die diesen Fehler verursachen. Dies ist wahrscheinlich die einfachste Lösung. Wenn Sie aus Unity heraus auf Ihr Skript doppelklicken, scheint es die Assembly nicht mitzuziehen.

0
Kevin Martin

Was funktioniert hat, ist, dass ich den gesamten Code in der defekten Klasse kopiert und diese Datei entfernt habe .. __ Ich öffnete eine leere Datei und fügte sie ein.

Ergebnis : schöne Syntax-Highlights kamen zurück!

0
Eray Alparslan

Versuchen Sie vor dem Neustart und/oder der Neuinstallation von VS zunächst, eines Ihrer anderen Projekte zu öffnen, um festzustellen, ob Intellisence funktioniert. Andernfalls liegt das Problem wahrscheinlich bei Ihrem aktuellen Projekt. Das wahrscheinlichste Opfer wären zunächst die NUGET-Pakete mit ausstehenden Aktualisierungen. Um dies zu beheben,

  1. Klicken Sie mit der rechten Maustaste auf Referenzen
  2. Fahren Sie mit Verwalten von NUGET-Paketen unter NUGET-Pakete fort
  3. fahren Sie mit Updates fort. Installieren Sie Updates und überprüfen Sie Intellisence erneut
0
David.Ambuka

Ich konnte die gleiche Version von .NET unter WIN installieren, die in meinem Unity-Projekt konfiguriert wurde. (Spielereinstellungen)

0
Bruno Araujo

Für Windows oder Mac OS:

Laden/Installieren Sie das Visual Studio IDE (mit Unity Tools)

Stellen Sie bei der Installation sicher, dass Sie die Installation von einschließen 

Spieleentwicklung mit Unity

 enter image description here

Verwenden Sie dann Unity (Sie können auf eine Ihrer C # -Dateien doppelklicken), öffnen Sie ein neues C # -Projekt und das Visual Studio IDE sollte sich mit Ihrer neuen Projektstruktur öffnen.

 enter image description here

Von dort sollten Sie in der Lage sein zu sehen, wonach Sie suchen.

Zum Beispiel:

 enter image description here

 enter image description here

Für Linux (Vorschlag):

Versuchen Sie Monodevelop - Weitere Informationen , es enthält Code-Vervollständigung/Hinweise.

0
Brien Foss

Denken Sie daran, dass bei Verwendung des ReSharper-Tools das IntelliSense-Tool außer Kraft gesetzt und dessen Eigenheiten angezeigt werden. Um dies zu ändern, gehen Sie in VS zu Erweiterungen -> ReSharper -> Optionen -> IntelliSense -> Allgemein und wählen Sie dann Visual Studio und nicht ReSharper.

0
user11897507

Keine der oben genannten Lösungen funktionierte für mich. Ich habe jedoch die Datei ProjectName.CSPROJ geöffnet und die neue Datei manuell hinzugefügt

0

Mein Problem war, dass das C # -Projekt auf ein anderes .NET Framework (4.7.2) abzielte, während das Unity-Projekt ein anderes Ziel hatte (.NET 3.5).

Ich habe das Problem behoben, indem ich das Ziel in Unity

Datei -> Build-Einstellungen -> Player-Einstellungen -> Andere Einstellungen -> API Kompatibilitätsgrad: Legen Sie die .NET-Version fest, die Sie bereits haben installiert (Überprüfen Sie Ihre .NET-Version hier ). In meinem Fall war es 4.x

Danach funktionierte Visual Studio einwandfrei und die Autokorrektur wurde ebenfalls behoben.

0
rkbroach

In meinem Fall wurde die korrekte .net-Version nicht auf meinem PC installiert. Ich installiere die .net 3.5 auf meinem PC und das hat für mich funktioniert. 

0