Unity-scripts die in Visual Studio zijn bewerkt, bieden geen autocomplete

Als ik C# Unity-scripts wil bewerken, worden ze geopend in Visual Studio. Het zou automatisch aanvullen voor alle Unity-gerelateerde code bieden, maar het werkt niet.

Hier kun je de ontbrekende functionaliteit zien:

Zoals gezien, wordt het object transformniet geopend het menu voor automatisch aanvullen.

Unity-versie: 5.5.2f1
Visuele studio 2015
Visual Studio Tools for Unity is geïnstalleerd


Antwoord 1, autoriteit 100%

Er is geen automatische aanvulling omdat het script “Diverse bestanden” zegt in plaats van de naam van het project. Bekijk de onderstaande afbeelding die uit de video in uw vraag kwam:

Het bericht “Diverse bestanden” kan verschillende redenen hebben:

  1. Het kan gebeuren wanneer u uw Unity C#-bestand opent vanuit een andere map in plaats van het te openen vanuit Unity Editor.

  2. Dit kan ook gebeuren omdat Unity is gecrasht terwijl Visual Studio nog open is, waardoor sommige bestanden beschadigd zijn.

  3. Het kan gebeuren omdat Unity is gesloten en vervolgens opnieuw is geopend, maar niet langer is verbonden met Visual Studio. Wanneer Visual Studio wordt geopend, krijgt u “Diverse bestanden” en geen automatische aanvulling.

  4. Dit kan gebeuren als Visual Studio Tools for unityniet is geïnstalleerd.

  5. Als je een script van Unity maakt, open het dan snel voordat Unity klaar is met verwerken of voordat de animatie van het ronde pictogram klaar is met animeren.


Meestal zou het herstarten van Unity en Visual Studio dit moeten oplossen.

Ik kan niet zeggen welke het probleem veroorzaakt, maar ik zal de meest waarschijnlijke oplossing bespreken om dit op te lossen.

Repareer deel 1:

  1. Download en installeer Visual Studio Tools for unityvan deze-link. Doe dit terwijl Unity en Visual Studio beide gesloten zijn.

  2. Ga vanuit Unity Editor naar BewerkenVoorkeuren… → Externe hulpmiddelen. Wijzig dat in het vervolgkeuzemenu Externe Scripteditorin Visual Studio 2015.


Repareer deel 2:

Als nieuw gemaakte C#-bestanden verschijnen als Diversen, volg dan de onderstaande instructie:

  1. Ga vanuit Visual Studio naar ExtraOpties…Tools for UnityOverig. Stel onder Verbindingspictogram weergevendit in op trueen start Visual Studio opnieuw op.

  2. Als u opnieuw opstart, zou het verbindingspictogram nu beschikbaar moeten zijn in Visual Studio. Klik erop en kies vervolgens de Unity-instantie om verbinding mee te maken. Het rode ‘x’-pictogram moet nu veranderen in een bruin vinkje. Wanneer u nu een nieuw C#-bestand in Unity maakt, zou het moeten openen zonder Diversente zeggen.


Repareer deel 3:

Nog steeds niet opgelost?

Importeer het project opnieuw en open vervolgens C# Project.

  1. Sluit Visual Studio.

  2. Vanuit Unity, importeer het project opnieuw door naar ActivaAlles opnieuw importerente gaan.

  3. Open nu het project in Visual Studio door naar ActivaC#-project openente gaan. Hierdoor wordt het project opnieuw geladen en worden mogelijke problemen met het oplossingsbestand opgelost.


Onderdeel 4 repareren:

Nog steeds niet opgelost?

Repareer elk C#-bestand afzonderlijk.

  1. Klik op het pictogram Alle bestanden weergeven.

  2. Selecteer het script dat niet automatisch wordt aangevuld, klik met de rechtermuisknop en selecteer Opnemen in project.


Onderdeel 5 repareren:

Nog niet opgelost?

Krediet gaat naar chrisvarnzvoor deze specifieke oplossing die voor meerdere mensen lijkt te hebben gewerkt.

  1. Visual Studio sluiten

  2. Ga naar uw projectmap en verwijder alle gegenereerde Visual Studio-bestanden.

    Dit zijn de bestandsextensies die moeten worden verwijderd:

    • .csproj
    • .user
    • .sln

    Voorbeeld:

    Stel dat de naam van uw project Target_Shootheet, dit is hoe de te verwijderen bestanden eruit moeten zien:

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

    Verwijder niets anders.

  3. Dubbelklik nogmaals op het script vanuit Unitydat een nieuw Visual Studio-bestand zou moeten genereren en open vervolgens Visual Studio. Dit kan je probleem oplossen.


Onderdeel 6 repareren:

Als het niet werkt, controleer dan of je deze-fout hebt:

De taak “GetReferenceNearestTargetFrameworkTask” is niet gevonden

  1. Installeer Nuget PackageManagervan hier.

  2. Visual Visual herstarten.

Zie ditantwoord voor meer informatie.


Antwoord 2, autoriteit 17%

Probeer dit,

  1. In Unity Editor Ga naar Menu, klik op Bewerken -> Voorkeuren -> Externe hulpmiddelen -> Externe scripteditor. Stel het in op Visual Studio (uw geïnstalleerde versie van VS).

  2. Ga nu in de Menubalk naar Bewerken -> Projectinstellingen -> Spelerinstellingen -> Overige instellingen -> Onder Configuratie -> Controleer API-compatibiliteitsniveau -> Wijzig het in uw geïnstalleerde .Net-versie. In mijn geval heb ik het ingesteld op .Net 4.x

Als Visual Studio nu al actief is, ga dan naar Visual Studio, het zal vragen om het project opnieuw te laden. Laad het project opnieuw. Controleer of het werkt, zo niet sluit Visual Studio af. Open nu het cs-bestand vanuit Unity Editor, en nu zou het moeten werken.


Antwoord 3, autoriteit 3%

Ik heb een andere manier gevonden om dit probleem op een gemakkelijkere manier op te lossen:

  1. Selecteer het kapotte bestand in Solution Explorer.
  2. Open de eigenschappen ervan.
  3. Schakel veld “Actie bouwen” van “Compileren” naar “Geen”.
  4. Schakel het dan terug naar “Compileren”.

Dit zal op de een of andere manier de synchronisatie tussen Unity en Visual Studio stoppen.

De volgende keer dat Visual Studio het project opnieuw laadt, wordt er een waarschuwing weergegeven.
Klik gewoon op “Verwerpen”.


Antwoord 4, autoriteit 2%

Als je al het bovenstaande hebt gedaan en nog steeds niet werkt, probeer dan dit:
Opmerking: u zou VS moeten hebben bijgewerkt.

Ga naar Unity > bewerken> voorkeur >Externe tools> externe scripteditor.

Op de een of andere manier had ik “visual studio” niet geselecteerd voor externe scripteditor en het werkte niet. Zodra ik dit selecteerde en dubbelklikte op het c#-bestand van unity begon het te werken.

Ik hoop dat het jou ook helpt.


Antwoord 5, autoriteit 2%

Ontlaad het project en laad het opnieuw in Visual Studio:

  • klik met de rechtermuisknop op uw project in Solution Explorer
  • selecteer Project verwijderen
  • selecteer Project opnieuw laden

Opgelost!

Ik vond deze oplossing het beste (makkelijkste) omdat ik het probleem meerdere keren tegenkwam.

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


Antwoord 6

  1. Selecteer project in Visual Studio
  2. Klik op de knop “Vernieuwen”


Antwoord 7

Deze pagina heeft me geholpen het probleem op te lossen.

Fix voor Unity losgekoppeld van Visual Studio

Selecteer in de Unity Editor de Bewerken > Voorkeurenmenu..

Selecteer het tabblad Externe hulpmiddelen aan de linkerkant.

Selecteer unity-versie in de vervolgkeuzelijst aan de rechterkant

Klik op Bestanden opnieuw genereren

Je bent klaar


Antwoord 8

Ik heb vandaag dezelfde problemen ondervonden met Visual Studio 2017 15.4.5 met Unity 2017.

Ik heb het probleem kunnen oplossen door met de rechtermuisknop op het project in Visual Studio te klikken en het doelframework te wijzigen van 3.5 in 4.5.

Ik hoop dat dit iemand anders in een soortgelijk scenario helpt.


Antwoord 9

Twee alternatieve opties:

1 repareren

@singleton wees me in deze richting. In plaats van het doel in Visual Studio te wijzigen, moet u het in Unity wijzigen, aangezien het project automatisch wordt gegenereerd.

Verwijder eerst de automatisch gegenereerde Visual Studio-bestanden:
.csproj
.gebruiker
.sln

Ga dan vanuit Unity naar PlayerSettings en verander onder ‘Other Settings’ de ‘Scripting Runtime Version’ van Stabiel 3.5 naar Experimenteel 4.6.

Dat loste het echter niet voor mij op.

2 repareren

Ik zag dat alle verwijzingen naar Unity-gerelateerde code waren gemarkeerd met een gele waarschuwing. Controleer uw foutenlogboeken en kijk of dit het geval is. Kijk in het bijzonder of u de volgende foutmelding krijgt: getreferenceNearestTargetframeworkTask

Zo ja, probeer dan:
Start Visual Studio Installer opnieuw.

Klik in de Build Tools 2017 op Wijzigen,

Zorg ervoor dat “Nuget-doelen en bouwtaken” zijn aangevinkt. Dit zou moeten worden aangevinkt als u op Universal Windows Platform-ontwikkeling klikt.


Antwoord 10

Update 2020 met Visual Studio Community 2019 en Unity 2019.3:

  1. Open Visual Studio Installer als beheerder, selecteer om uw huidige installatie te wijzigen en voeg “Game-ontwikkeling voor Unity” toe

  2. Als je nu een nieuw c#-script in Unity toevoegt en het (automatisch) opent met Visual Studio, wordt het niet beschreven als “Diversen” bovenaan het venster, maar met “Assembly-CSharp”, en het automatisch aanvullen werkt.


Antwoord 11

ik vond mijn oplossing door het .cs-bestand te maken vanuit visual studio zelf in plaats van unity-editor

  • klik met de rechtermuisknop op de projectmap in de oplossingsverkenner
  • voeg > toe nieuw item
  • typ “unity” in het zoekveld rechtsboven
  • selecteer “CSharp MonoBehaviour”
  • noem je script onderaan en klik op Toevoegen

Antwoord 12

In mijn geval was de juiste .net-versie niet op mijn pc geïnstalleerd. Ik installeer de .net 3.5 op mijn pc en dat werkte voor mij.


Antwoord 13

Voor Windows of macOS:

Download/Installeer de Visual Studio IDE (met Unity Tools)

Zorg er bij het installeren voor dat u de installatie van

. opneemt

Game-ontwikkeling met Unity

Gebruik vervolgens Unity (u kunt dubbelklikken op een van uw C#-bestanden), open een nieuw C#-project en de Visual Studio IDE zou moeten openen met uw nieuwe projectstructuur.

Vanaf daar zou je moeten kunnen zien wat je zoekt.

Bijvoorbeeld:

Voor Linux (suggestie):

Probeer MonodevelopAanvullende informatie, het biedt code-aanvulling/hints.


Antwoord 14

Mijn automatisch aanvullen werkte ook niet omdat Visual Studio Tools for Unityniet was geïnstalleerd. Dus nadat u dat hebt geïnstalleerd, verwijdert u de automatisch gegenereerde Visual Studio-bestanden. Anderen zeiden dat je het bestand opnieuw opent en dat het probleem is opgelost, maar dat is het niet.

De truc is: in plaats van normaal op het bestand te dubbelklikken, moet je het C#-bestand vanuit Unity openen door met de rechtermuisknop te klikken en vervolgens op “C#-project openen”.


Antwoord 15

Het probleem dat ik ondervond was dat het C#-project zich richtte op een ander .NET Framework (4.7.2), terwijl het Unity-project een ander doel had (.NET 3.5).

Ik heb dit opgelost door het doel in Unity te wijzigen als-

Bestand -> Build-instellingen -> Spelerinstellingen -> Overige instellingen -> API
Compatibiliteitsniveau: stel het in op de .NET-versie die u al heeft
geïnstalleerd (Controleer uw .NET-versie hier). In mijn geval was het 4.x

Hierna werkte Visual Studio perfect en was autocorrectie ook verholpen.


Antwoord 16

Probeer op Ctrl + Alt + Spacete drukken (die schakelt tussen suggestie en standaard voltooiingsmodi)


Antwoord 17

Om de een of andere vreemde reden kan de tool “Game-ontwikkeling met Unity” worden uitgeschakeld in Visual Studio.

Om dit op te lossen..

  1. Visual Studio openen
  2. Ga naar Extensies → “Extensies beheren” → Geïnstalleerd
  3. Vind “Visual Studio 2019 Tools for Unity”
  4. Als het is uitgeschakeld, schakel het dan in
  5. Herstart VS

Met dank aan Yuli Levtovs antwoordop een andere discussie


Antwoord 18

Ik heb besloten om dezelfde versie van .NET op WIN te installeren die in mijn Unity-project was geconfigureerd. (Spelerinstellingen)


Antwoord 19

  • Ga naar Opties in het menu Extra en selecteer vervolgens Documenten in het knooppunt Omgeving. (Als Documenten niet in de lijst verschijnen, selecteert u Alle instellingen weergeven in het dialoogvenster Opties.)
  • Vink “Diverse bestanden in Solution Explorer” aan en klik op OK. (Deze optie geeft het knooppunt “Diverse bestanden” weer in Solution Explorer. Diverse bestanden zijn bestanden die niet zijn gekoppeld aan een project of oplossing, maar die voor uw gemak kunnen worden weergegeven in Solution Explorer als u deze optie aanvinkt.)
  • Zoek uw bestand in de Solution Explorer onder “Diverse bestanden”. Sleep vervolgens uw bestand naar de plaats waar het hoort en voila! Hiermee wordt het bestand gekopieerd naar de plaats waar u het neerzet. U kunt nu veilig het oudere bestand verwijderen onder de map Diverse bestanden als u dat wilt

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

In het geval dat de map Scripts niet zichtbaar is:

  • Klik op “Alle bestanden weergeven” in Solution Explorer
  • Zoek de map Scripts.
  • Klik met de rechtermuisknop op Scripts en selecteer “Opnemen in project”

Antwoord 20

Houd er rekening mee dat als u de ReSharper-tool gebruikt, deze de IntelliSense zal overschrijven en zijn eigen tool zal weergeven. Om dat te veranderen, gaat u in VS naar Extensies -> ReSharper -> Options -> IntelliSense -> General en kies vervolgens Visual Studio en niet ReSharper.


Antwoord 21

Voordat u VS opnieuw opstart en/of opnieuw installeert, probeert u eerst een van uw andere projecten te openen om te zien of Intellisence werkt, als dat zo is, ligt het probleem waarschijnlijk bij uw huidige project. Ten eerste, het meest waarschijnlijke slachtoffer zijn de NUGET-pakketten met in afwachting van updates. Om dit op te lossen,

  1. Klik met de rechtermuisknop op referenties
  2. Ga door met het beheren van NUGET-pakketten onder NUGET-pakketten
  3. ga door naar updates Installeer updates en controleer Intellisence opnieuw

Antwoord 22

Ik heb ze allemaal geprobeerd, maar kwam er uiteindelijk achter dat ik met de rechtermuisknop op de oplossing in Solution Explorer moest klikken en bestaande items moest toevoegen en het C#-assemblybestand in Windows Explorer moest zoeken. Er lijken een biljoen verschillende problemen te zijn die u deze fout geven, dit is waarschijnlijk de meest eenvoudige oplossing. Als je vanuit unity dubbelklikt op je script, lijkt het alsof het de assembly niet meesleept.


Antwoord 23

Een andere mogelijke oplossing:

  1. Klik in het projectvenster op de map Activa
  2. Klik met de rechtermuisknop en maak -> C#-script
  3. Dubbelklik erop en wacht.

Om de een of andere reden werkt dit.


Antwoord 24

Geen van de bovenstaande oplossingen werkte voor mij. Ik opende echter het bestand ProjectName.CSPROJen voegde het nieuwe bestand handmatig toe en het werkte als een zonnetje


Antwoord 25

Wat me hielp, is dat ik alle code in de kapotte klasse heb gekopieerd en dat bestand heb verwijderd.
Daarna opende ik een leeg bestand met dezelfde naam en plakte het terug.

Resultaat: prachtige syntaxishoogtepunten kwamen terug!


Antwoord 26

Probeer met een combinatie: Ctrl + Alt + Spatie


Antwoord 27

een van de bovenstaande methoden heeft voor mij gewerkt en ik heb zojuist een oplossing voor dit probleem gevonden,
1. Ga eerst naar de projectdirectory en verwijder het .sln-bestand
2. Ten tweede, ga naar eenheid en dubbelklik op uw script. Dan is Visual Studio open met een fout,

  1. Klik vervolgens op OK en sluit Visual Studio Editor.
  2. Schakel uiteindelijk uw Windows Defender uit en ga vervolgens naar uw projectdirectory en er zijn .csproj-bestand. Dubbelklik gewoon en open dit van uw Visual Studio-editor en open de map Scripts in de map Assets en open de scripts en autocompletion zal perfect werken.

Antwoord 28

Probeer deze die het zou moeten werken omdat het voor mij werkt.

GOTO EDIT- & GT; Voorkeuren- & GT; Externe hulpmiddelen- & GT; Externe scripteditor Select Scripting Editor

Other episodes