Kiedy chcę edytować skrypty C # Unity, otwierają się w programie Visual Studio. Ma zapewniać automatyczne uzupełnianie dla całego kodu związanego z Unity, ale nie działa.
Tutaj możesz zobaczyć brakującą funkcjonalność:
Jak widać, transform
obiekt nie otwiera menu autouzupełniania.
Wersja aparatu Unity: 5.5.2f1
Visual studio 2015
Visual Studio Tools for Unity jest zainstalowany
c#
visual-studio
unity3d
intellisense
CorbenDalas
źródło
źródło
ll try... I have a Little problem with scripts. When I
piszę skrypty C # dla Unity z Visual Studio, wygląda na to, że pracuję w notatniku, nie ma żadnych "wskazówek" (prawda?) I muszę pisać bardzo powoli. Proszę, obejrzyj wideo. Na początku sytuacja normalna (z tutoriala), druga część to mój problem.Odpowiedzi:
Nie ma autouzupełniania, ponieważ w skrypcie zamiast nazwy projektu jest napisane „ Różne pliki ”. Spójrz na poniższy obrazek, który pochodzi z filmu, którego dotyczy Twoje pytanie:
Komunikat „ Różne pliki ” może wystąpić z wielu powodów:
Może się to zdarzyć, gdy otworzysz plik Unity C # z innego folderu zamiast otwierania go w edytorze Unity.
Może się to również zdarzyć, ponieważ Unity uległ awarii, gdy program Visual Studio jest nadal otwarty, co powoduje uszkodzenie niektórych plików.
Może się tak zdarzyć, ponieważ Unity został zamknięty, a następnie ponownie otwarty, ale nie jest już połączony z programem Visual Studio. Po otwarciu programu Visual Studio pojawi się „ Różne pliki ” i brak automatycznego uzupełniania.
Może się to zdarzyć, gdy nie zainstalowano programu Visual Studio Tools for Unity .
Kiedy tworzysz skrypt z Unity, szybko go otwórz, zanim Unity zakończy przetwarzanie go lub zanim animacja okrągłej ikony zakończy się animacją.
W większości przypadków ponowne uruchomienie Unity i programu Visual Studio powinno rozwiązać ten problem.
Nie mogę powiedzieć, który z nich powoduje problem, ale przedstawię najbardziej prawdopodobne rozwiązanie tego problemu.
Napraw część 1 :
Pobierz i zainstaluj Visual Studio Tools for Unity z tego linku. Zrób to, gdy Unity i Visual Studio są zamknięte.
W edytorze Unity przejdź do Edycja → Preferencje ... → Narzędzia zewnętrzne . W menu rozwijanym Edytor skryptów zewnętrznych zmień to na Visual Studio 2015 .
Napraw część 2 :
Jeśli nowo utworzone pliki C # pojawiają się jako Różne, postępuj zgodnie z poniższą instrukcją:
W programie Visual Studio przejdź do opcji Narzędzia → Opcje ... → Narzędzia dla aparatu Unity → Różne . W obszarze Pokaż ikonę łączności ustaw ją na
true
ponowne uruchomienie programu Visual Studio.Po ponownym uruchomieniu ikona połączenia powinna być teraz dostępna w programie Visual Studio. Kliknij go, a następnie wybierz instancję Unity, z którą chcesz się połączyć. Czerwona ikona „x” powinna teraz zmienić się w brązową ikonę znacznika wyboru. Teraz, gdy tworzysz nowy plik C # w Unity, powinien on zostać otwarty bez mówienia Różne .
Napraw część 3 :
Wciąż nie został rozwiązany?
Ponownie zaimportuj projekt, a następnie otwórz projekt C #.
Zamknij program Visual Studio.
Z Unity ponownie zaimportuj projekt, przechodząc do Zasoby → Ponownie importuj wszystko .
Teraz otwórz projekt w programie Visual Studio, przechodząc do Assets → Open C # Project . Spowoduje to ponowne załadowanie projektu i naprawienie możliwych problemów z plikiem rozwiązania.
Napraw część 4 :
Wciąż nie został rozwiązany?
Napraw każdy plik C # indywidualnie.
Kliknij ikonę Pokaż wszystkie pliki .
Wybierz skrypt, który nie wykonuje automatycznego uzupełniania, a następnie kliknij prawym przyciskiem myszy i wybierz opcję Uwzględnij w projekcie .
Napraw część 5 :
Jeszcze nie naprawione?
Zasługa chrisvarnz dla tego konkretnego rozwiązania, które wydaje się, że pracował dla wielu ludzi.
Zamknij program Visual Studio
Przejdź do katalogu projektu i usuń wszystkie wygenerowane pliki programu Visual Studio.
Oto rozszerzenia plików do usunięcia:
.csproj
.user
.sln
Przykład:
Powiedzmy, że nazywa się Twój projekt
Target_Shoot
, tak powinny wyglądać pliki do usunięcia:Target_Shoot.csproj
Target_Shoot.Editor.csproj
Target_Shoot.Editor.csproj.user
Target_Shoot.Player.csproj
Target_Shoot.Player.csproj.user
Target_Shoot.sln
Nie usuwaj niczego innego.
Ponownie kliknij dwukrotnie skrypt w Unity, który powinien wygenerować nowy plik programu Visual Studio, a następnie otwórz program Visual Studio. To może rozwiązać twój problem.
Napraw część 6 :
Jeśli nie działa, sprawdź, czy masz ten błąd:
Zainstalować Nuget PackageManager od tutaj .
Uruchom ponownie Visual Visual.
Zobacz tę odpowiedź, aby uzyskać więcej informacji.
źródło
*.csproj
i*.sln
plików i rozpocząć Jedności niż. Zwykle to działaSpróbuj tego,
W edytorze Unity przejdź do menu, kliknij Edycja -> Preferencje -> Narzędzia zewnętrzne -> Edytor skryptów zewnętrznych. Ustaw go na Visual Studio (zainstalowana wersja VS).
Teraz w pasku menu przejdź do Edycja -> Ustawienia projektu -> Ustawienia odtwarzacza -> Inne ustawienia -> W sekcji Konfiguracja -> Sprawdź poziom zgodności API -> Zmień na zainstalowaną wersję .Net. W moim przypadku ustawiłem to na .Net 4.x
Teraz, jeśli program Visual Studio jest już uruchomiony, przejdź do programu Visual Studio, poprosi o ponowne załadowanie projektu. Załaduj ponownie projekt. Sprawdź, czy działa, jeśli nie, zamknij program Visual Studio. Teraz otwórz plik cs z Unity Editor, a teraz powinien działać.
źródło
Znalazłem inny sposób rozwiązania tego problemu w wygodniejszy sposób:
To w jakiś sposób zabije synchronizację między Unity a Visual Studio.
Następnym razem, gdy program Visual Studio ponownie załaduje projekt, wyświetli ostrzeżenie. Po prostu kliknij „Odrzuć”.
źródło
Zwolnij i ponownie załaduj projekt w programie Visual Studio:
Naprawiony!
Uważam, że to rozwiązanie działa najlepiej (najłatwiej), ponieważ wielokrotnie napotykałem problem.
Źródło: https://alexdunn.org/2017/04/26/xamarin-tips-fixing-the-highlighting-drop-in-your-xamarin-android-projects/
źródło
źródło
Jeśli wykonałeś wszystkie powyższe i nadal nie działa, po prostu spróbuj: Uwaga: powinieneś zaktualizować VS.
Idź do Unity> edytuj> preferencje> Narzędzia zewnętrzne> zewnętrzny edytor skryptów. Jakoś dla mnie nie wybrałem "Visual Studio" dla zewnętrznego edytora skryptów i nie działało. Gdy tylko to wybrałem i dwukrotnie kliknąłem plik C # z Unity, zaczęło działać.
Mam nadzieję, że tobie też pomoże.
źródło
Te same problemy napotykam dzisiaj, używając programu Visual Studio 2017 15.4.5 z oprogramowaniem Unity 2017.
Udało mi się naprawić ten problem, klikając prawym przyciskiem myszy projekt w programie Visual Studio i zmieniając docelową strukturę z 3,5 na 4,5.
Mam nadzieję, że pomoże to komukolwiek innemu w podobnym scenariuszu.
źródło
Dwie alternatywne opcje:
Poprawka 1
@singleton wskazał mi w tym kierunku. Zamiast zmieniać cel w programie Visual Studio, należy go zmienić w Unity, ponieważ projekt jest generowany automatycznie.
Najpierw usuń automatycznie wygenerowane pliki programu Visual Studio: .csproj .user .sln
Następnie z poziomu Unity przejdź do PlayerSettings i pod „Other Settings” zmień „Scripting Runtime Version” ze stabilnej 3.5 na eksperymentalną 4.6.
Jednak to mi nie pomogło.
Poprawka 2
Zauważyłem, że wszystkie odniesienia do kodu związanego z Unity zostały oznaczone żółtym ostrzeżeniem. Sprawdź dzienniki błędów i zobacz, czy tak jest. W szczególności sprawdź, czy pojawia się następujący błąd: getreferenceNearestTargetframeworkTask
Jeśli tak, spróbuj: ponownie uruchom Instalatora programu Visual Studio.
W Build Tools 2017 kliknij przycisk Modyfikuj,
Upewnij się, że „Cele Nuget i zadania kompilacji” są zaznaczone. Powinno to zostać zaznaczone, jeśli klikniesz na tworzenie uniwersalnej platformy Windows.
źródło
Zaktualizuj 2020 z Visual Studio Community 2019 i Unity 2019.3:
Otwórz Instalatora programu Visual Studio jako administrator, wybierz modyfikację bieżącej instalacji i dodaj „Tworzenie gier dla Unity”
Jeśli teraz dodasz nowy skrypt C # w Unity i otworzysz go (automatycznie) w programie Visual Studio, nie jest on opisany jako „Różne” w górnej części okna, ale z „Assembly-CSharp”, a autouzupełnianie działa.
źródło
Znalazłem swoje rozwiązanie, tworząc plik .cs z samego programu Visual Studio, zamiast z edytora Unity
źródło
W moim przypadku poprawna wersja .net nie została zainstalowana na moim komputerze. Instaluję .net 3.5 na moim komputerze i to zadziałało.
źródło
W przypadku systemu Windows lub macOS:
Pobierz / zainstaluj środowisko IDE programu Visual Studio (z narzędziami Unity)
Podczas instalacji pamiętaj, aby dołączyć instalację
Następnie za pomocą aparatu Unity (możesz dwukrotnie kliknąć jeden z plików C #), otwórz nowy projekt C #, a środowisko IDE programu Visual Studio powinno zostać otwarte z nową strukturą projektu.
Stamtąd powinieneś być w stanie zobaczyć, czego szukasz.
Na przykład:
W przypadku systemu Linux (sugestia):
Wypróbuj Monodevelop - Dodatkowe informacje , zapewnia uzupełnianie kodu / wskazówki.
źródło
Moje autouzupełnianie również nie działało, ponieważ nie zainstalowano programu Visual Studio Tools for Unity . Po zainstalowaniu usuń automatycznie wygenerowane pliki programu Visual Studio. Inni powiedzieli, że ponownie otwierasz plik i problem został rozwiązany, ale tak nie jest.
Sztuczka polega na tym, że zamiast normalnie dwukrotnie kliknąć plik, musisz otworzyć plik C # z Unity, klikając prawym przyciskiem myszy, a następnie „Otwórz projekt C #”.
źródło
Problem, z jakim się spotkałem, polegał na tym, że projekt C # był przeznaczony dla innego .NET Framework (4.7.2), podczas gdy projekt Unity miał inny cel (.NET 3.5).
Naprawiłem to, zmieniając cel w Unity jako-
Po tym Visual Studio działało doskonale, a autokorekta również została naprawiona.
źródło
Spróbuj nacisnąć
Ctrl + Alt + Space
(co przełącza między trybami podpowiedzi i standardowym uzupełnianiem)źródło
Z jakiegoś dziwnego powodu narzędzie „Tworzenie gier za pomocą aparatu Unity” może zostać wyłączone w programie Visual Studio.
Aby to naprawić ...
Kredyt na odpowiedź Yuli Levtov jest na innym wątku
źródło
Rozwiązałem, aby zainstalować tę samą wersję .NET na WIN, która została skonfigurowana w moim projekcie Unity. (Ustawienia gracza)
źródło
Kredyty: https://stackoverflow.com/a/47662523/10471480
W przypadku, gdy folder Scripts nie jest widoczny:
źródło
Udało mi się to, że skopiowałem cały kod z zepsutej klasy i usunąłem ten plik. Następnie otworzyłem pusty plik i wkleiłem.
Rezultat : wróciły piękne podkreślenia składni!
źródło
Pamiętaj, że jeśli używasz narzędzia ReSharper, zastąpi ono funkcję IntelliSense i wyświetli swoje własne. Aby to zmienić, w VS przejdź do Extensions -> ReSharper -> Options -> IntelliSense -> General, a następnie wybierz Visual Studio, a nie ReSharper.
źródło
Przed ponownym uruchomieniem i / lub ponowną instalacją VS, spróbuj najpierw otworzyć dowolny inny projekt, aby sprawdzić, czy Intellisence działa, a jeśli tak, to problem prawdopodobnie dotyczy bieżącego projektu. Po pierwsze, najbardziej prawdopodobną ofiarą byłyby pakiety NUGET z oczekującymi aktualizacjami. Aby to naprawić,
źródło
Wypróbowałem wszystkie z nich, ale ostatecznie okazało się, że muszę kliknąć prawym przyciskiem myszy rozwiązanie w Eksploratorze rozwiązań, dodać istniejące elementy i znaleźć plik zespołu C # w Eksploratorze Windows. Wydaje się, że istnieje miliard różnych problemów, które powodują ten błąd, jest to prawdopodobnie najprostsze rozwiązanie. Dwukrotne kliknięcie skryptu w programie Unity nie wydaje się przeciągać zestawu.
źródło
jedna z powyższych metod działa dla mnie i właśnie znalazłem rozwiązanie tego problemu:
1. Najpierw przejdź do katalogu projektu i usuń
.sln
plik2. Po drugie, przejdź do unity i dwukrotnie kliknij skrypt. Wtedy Visual Studio otworzy się z błędem,
.csproj
plik. Po prostu kliknij dwukrotnie i otwórz to w edytorze Visual Studio i otwórz folder skryptów w folderze zasobów i otwórz skrypty, a autouzupełnianie będzie działać idealnie.źródło
Kolejna możliwa poprawka:
Z jakiegoś powodu ta praca.
źródło
Żadne z powyższych rozwiązań nie zadziałało. Jednak otworzyłem
ProjectName.CSPROJ
plik i ręcznie dodałem nowy plik i działał jak urokźródło
Spróbuj z kombinacją: Ctrl + Alt + Space
źródło