Ich habe ein kleines Problem mit Skripten. Wenn ich C # -Skripte für Unity mit Visual Studio schreibe, arbeite ich anscheinend im Editor, es gibt keine automatische Vervollständigung (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.
Beispielsweise zeigt die transform
Klasse keinen Vorschlag oder keine automatische Vervollständigung.
Bild mit Problem:
Unity-Version: 5.5.2f1
Visual Studio 2015
Visual Studio Tools für Unity ist installiert
c#
visual-studio
unity3d
intellisense
CorbenDalas
quelle
quelle
ll try... I have a Little problem with scripts. When I
ich schreibe C # -Skripte für Unity mit Visual Studio. Es scheint, als würde ich im Editor arbeiten. Es gibt keine "Tipps" (richtig?) Und ich muss es sehr langsam schreiben. Bitte schauen Sie sich das Video an. Am Anfang ist normale Situation (aus dem Tutorial), der zweite Teil ist mein Problem.Antworten:
Es erfolgt keine automatische Vervollständigung, da im Skript anstelle des Namens des Projekts " Verschiedene Dateien " angezeigt wird. Schauen Sie sich das Bild unten an, das aus dem Video in Ihrer Frage stammt:
Die Meldung " Verschiedene Dateien " kann aus verschiedenen Gründen auftreten:
1. Dies kann passieren, wenn Sie Ihre Unity C # -Datei aus einem anderen Ordner öffnen, anstatt sie über den 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. Wenn Visual Studio geöffnet wird, erhalten Sie " Verschiedene Dateien " 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 mit runden Symbolen animiert wird.
In den meisten Fällen sollte ein Neustart von Unity und Visual Studio dies beheben.
Ich kann nicht sagen, welche das Problem verursacht, aber ich werde die wahrscheinlichste Lösung zur Behebung dieses Problems behandeln.
Fix Teil 1 :
1. Laden Sie Visual Studio Tools für die Einheit über diesen Link herunter und installieren Sie sie . Tun Sie dies, während Unity und Visual Studio beide geschlossen sind.
2. Gehen Sie im Unity Editor zu Bearbeiten -> Einstellungen ... -> Externe Tools . Auf der externen Skript - Editor Drop - Down - Menü ändern , das zu Visual Studio 2015 .
Fix Teil 2 :
Wenn neu erstellte C # -Dateien als Verschiedenes angezeigt werden, befolgen Sie die folgenden Anweisungen:
1. Gehen Sie in Visual Studio zu Extras -> Optionen ... -> Tools für Unity -> Verschiedenes . Unter anzeigen Konnektivität Symbol , stellen Sie
true
dann Visual Studio neu starten.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 jetzt in ein braunes Häkchensymbol verwandeln. Wenn Sie jetzt eine neue C # -Datei in Unity erstellen, sollte diese ohne Verschiedenes geöffnet werden .
Fix Teil 3 :
Immer noch nicht behoben?
Projekt erneut importieren und dann C # -Projekt öffnen.
1. Schließen Sie Visual Studio.
2. Importieren Sie aus Unity das Projekt erneut, indem Sie zu Assets -> Reimport All gehen .
3. Öffnen Sie jetzt das Projekt in Visual Studio, indem Sie zu Assets -> C # -Projekt öffnen gehen . Dadurch wird das Projekt neu geladen und mögliche Probleme mit der Lösungsdatei behoben.
Fix Teil 4 :
Immer noch nicht behoben?
Korrigieren Sie jede C # -Datei einzeln.
1. Klicken Sie auf das Symbol Alle Dateien anzeigen .
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 .
Fix Teil 5 :
Noch nicht behoben?
Kredit geht an chrisvarnz für diese spezielle Lösung , die für mehrere Personen gearbeitet zu haben scheint.
1. Schließen Sie Visual Studio
2. Wechseln Sie in Ihr Projektverzeichnis und löschen Sie alle generierten Visual Studio-Dateien.
Dies sind die zu löschenden Dateierweiterungen:
Beispiel:
Angenommen, der Name Ihres Projekts heißt "Target Shoot". So sollten die zu löschenden Dateien aussehen:
Löschen Sie nichts anderes.
3. Doppelklicken Sie in Unity erneut auf das Skript, um eine neue Visual Studio-Datei zu generieren, und öffnen Sie dann Visual Studio. Dies kann Ihr Problem lösen.
Fix Teil 6 :
Wenn dies nicht funktioniert, überprüfen Sie, ob dieser Fehler auftritt:
1. Installieren Sie Nuget PackageManager von hier aus .
2. Starten Sie Visual Visual neu.
Weitere Informationen finden Sie in dieser Antwort.
quelle
*.csproj
und*.sln
Dateien und starten Unity als. Dies funktioniert normalerweiseVersuche dies,
Wenn Visual Studio bereits ausgeführt wird, gehen Sie zu Visual Studio und werden aufgefordert, das Projekt neu zu laden. Laden Sie das Projekt neu. Überprüfen Sie, ob es funktioniert, wenn Sie Visual Studio nicht schließen. Öffnen Sie jetzt die cs-Datei im Unity Editor, und jetzt sollte es funktionieren.
quelle
Ich habe einen anderen Weg gefunden, um dieses Problem bequemer zu beheben:
Dadurch wird die Synchronisation zwischen Unity und Visual Studio irgendwie beendet.
Wenn Visual Studio das Projekt das nächste Mal neu lädt, wird eine Warnung ausgegeben. Klicken Sie einfach auf "Verwerfen".
quelle
Entladen und laden Sie das Projekt in Visual Studio neu:
Fest!
Ich fand diese Lösung am besten (am einfachsten), da ich mehrmals auf das Problem gestoßen war.
Quelle: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/
quelle
quelle
Ich habe heute mit Visual Studio 2017 15.4.5 mit Unity 2017 dieselben Probleme festgestellt.
Ich konnte das Problem beheben, indem ich mit der rechten Maustaste auf das Projekt in Visual Studio klickte und das Zielframework von 3.5 auf 4.5 änderte.
Ich hoffe, dies hilft allen anderen in einem ähnlichen Szenario.
quelle
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 zuerst die automatisch generierten Visual Studio-Dateien: .csproj .user .sln
Gehen Sie dann in Unity zu PlayerSettings und ändern Sie unter "Andere Einstellungen" 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 festgestellt, dass alle Verweise auf Unity-bezogenen Code mit einer gelben Warnung gekennzeichnet sind. Ü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: Starten Sie Visual Studio Installer erneut.
Klicken Sie in den Build Tools 2017 auf Ändern.
Stellen Sie sicher, dass "Nuget-Ziele und Build-Aufgaben" aktiviert sind. Dies sollte angekreuzt werden, wenn Sie auf Universal Windows Platform Development klicken.
quelle
Wenn Sie alle oben genannten Schritte ausgeführt haben und immer noch nicht funktionieren, versuchen Sie Folgendes: Hinweis: Sie sollten VS aktualisiert haben.
Gehen Sie zu Unity> Bearbeiten> Einstellungen> Externe Tools> Externer Skripteditor. Irgendwie hatte ich für mich nicht "Visual Studio" für den externen Skripteditor ausgewählt und es funktionierte nicht. Sobald ich dies ausgewählt und doppelt auf c # -Datei von Unity geklickt hatte, fing es an zu funktionieren.
Ich hoffe es hilft dir auch.
quelle
Ich fand meine Lösung, indem ich die CS-Datei aus Visual Studio selbst anstelle des Unity-Editors erstellte
quelle
In meinem Fall wurde auf meinem PC nicht die richtige .net-Version installiert. Ich installiere die .net 3.5 auf meinem PC und das hat bei mir funktioniert.
quelle
Das Problem, mit dem ich konfrontiert war, 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 dies behoben, indem ich das Ziel in Unity as- geändert habe.
Danach funktionierte Visual Studio einwandfrei und die Autokorrektur wurde ebenfalls behoben.
quelle
Versuchen Sie es mit Drücken
Ctrl + Alt + Space
(wodurch zwischen Vorschlags- und Standardabschlussmodus umgeschaltet wird).quelle
Für Windows oder MacOS:
Laden Sie die Visual Studio-IDE herunter / installieren Sie sie (mit Unity Tools).
Stellen Sie bei der Installation sicher, dass Sie die Installation von einschließen
Öffnen Sie dann mit Unity (Sie können auf eine Ihrer C # -Dateien doppelklicken) ein neues C # -Projekt, und die Visual Studio-IDE sollte mit Ihrer neuen Projektstruktur geöffnet werden.
Von dort aus sollten Sie sehen können, wonach Sie suchen.
Beispielsweise:
Für Linux (Vorschlag):
Versuchen Sie Monodevelop - Zusätzliche Informationen , es bietet Code-Vervollständigung / Hinweise.
quelle
Ich habe versucht, dieselbe Version von .NET unter WIN zu installieren, die in meinem Unity-Projekt konfiguriert wurde. (Spielereinstellungen)
quelle
Meine automatische Vervollständigung funktionierte auch nicht, da Visual Studio Tools for Unity nicht installiert war. Löschen Sie nach der Installation die automatisch generierten Visual Studio-Dateien. Andere sagten, dass Sie die Datei erneut öffnen und das Problem behoben ist, aber nicht.
Der Trick ist: Anstatt normalerweise auf die Datei zu doppelklicken, müssen Sie die C # -Datei von Unity aus mit einem Rechtsklick und dann auf "C # -Projekt öffnen" öffnen.
quelle
Keine der oben genannten Lösungen hat bei mir funktioniert. Ich habe jedoch die Datei ProjectName.CSPROJ geöffnet und die neue Datei manuell hinzugefügt, und es hat wie ein Zauber funktioniert
quelle
Credits: https://stackoverflow.com/a/47662523/10471480
Falls der Skriptordner nicht sichtbar ist:
quelle
Was mir geholfen hat ist, dass ich den gesamten Code innerhalb der kaputten Klasse kopiert und diese Datei entfernt habe. Dann habe ich eine leere Datei geöffnet und eingefügt.
Ergebnis : Schöne Syntax-Highlights kamen zurück!
quelle
Beachten Sie, dass bei Verwendung des ReSharper-Tools IntelliSense überschrieben und angezeigt wird. Um dies zu ändern, gehen Sie in VS zu Erweiterungen -> ReSharper -> Optionen -> IntelliSense -> Allgemein und wählen Sie dann Visual Studio und nicht ReSharper.
quelle
Versuchen Sie vor dem Neustart und / oder der Neuinstallation von VS zunächst, ein anderes Projekt zu öffnen, um festzustellen, ob Intellisence funktioniert. Wenn dies der Fall ist, liegt das Problem wahrscheinlich bei Ihrem aktuellen Projekt. Erstens wären die NUGET-Pakete mit ausstehenden Aktualisierungen das wahrscheinlichste Opfer. Um dies zu beheben,
quelle
Ich habe all dies ausprobiert, aber am Ende festgestellt, dass ich im Projektmappen-Explorer mit der rechten Maustaste auf die Lösung klicken und vorhandene Elemente hinzufügen und die C # -Baugruppendatei im Fenster-Explorer suchen musste. Es scheint eine Unmenge verschiedener Probleme zu geben, die Ihnen diesen Fehler verursachen. Dies ist wahrscheinlich die einfachste Lösung. Wenn Sie von Unity aus auf Ihr Skript doppelklicken, scheint es die Assembly nicht mit sich zu ziehen.
quelle
Eine der oben genannten Methoden funktioniert für mich und ich habe gerade eine Lösung für dieses Problem gefunden:
1. Gehen Sie zuerst in das Projektverzeichnis und löschen Sie die
.sln
Datei.2. Gehen Sie zu Unity und doppelklicken Sie auf Ihr Skript. Dann wird Visual Studio mit einem Fehler geöffnet.
.csproj
Datei angezeigt. Doppelklicken Sie einfach und öffnen Sie dies in Ihrem Visual Studio-Editor. Öffnen Sie den Skriptordner im Assets-Ordner und öffnen Sie die Skripte. Die automatische Vervollständigung funktioniert einwandfrei.quelle
Update 2020 mit Visual Studio Community 2019 und Unity 2019.3:
1) Öffnen Sie Visual Studio Installer als Administrator, wählen Sie, um Ihre aktuelle Installation zu ändern, und fügen Sie "Spieleentwicklung für Unity" hinzu.
2) Wenn Sie jetzt ein neues c # -Skript in Unity hinzufügen und es (automatisch) mit Visual Studio öffnen, wird es nicht als "Verschiedenes" oben im Fenster beschrieben, sondern mit "Assembly-CSharp", und die automatische Vervollständigung funktioniert.
quelle
Eine weitere mögliche Lösung:
Aus irgendeinem Grund funktioniert diese.
quelle
Versuchen Sie es mit einer Kombination: Ctrl + Alt + Space
quelle