Skrypty Unity edytowane w Visual studio nie zapewniają autouzupełniania
Kiedy chcę edytować skrypty C# Unity, otwierają się one w Visual Studio. Ma zapewnić auto complete 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 Unity: 5.5. 2f1
Visual studio 2015
Zainstalowano narzędzia Visual Studio dla Unity
27 answers
Nie ma automatycznego uzupełniania, ponieważ skrypt mówi " Różne Pliki " zamiast nazwy projektu. Spójrz na poniższy obraz, który pochodzi z filmu w twoim pytaniu:
Wiadomość "Różne Pliki " może się zdarzyć z wielu powodów:
-
Może się to zdarzyć, gdy otworzysz plik Unity C# z innego folderu zamiast otwierać go z edytora Unity.
-
To może dzieje się tak również dlatego, że Unity zawiesił się, gdy Visual Studio jest nadal otwarte, co powoduje uszkodzenie niektórych plików.
-
Może się to zdarzyć, ponieważ Unity zostało zamknięte, a następnie ponownie otwarte, ale nie jest już połączone z Visual Studio. Po otwarciu Visual Studio otrzymujesz " Różne Pliki " i nie ma automatycznego uzupełniania.
-
Może się to zdarzyć, gdy Visual Studio Tools for unity
Nie jest zainstalowane.
-
Kiedy tworzysz skrypt z Unity to szybko otwórz go przed zakończeniem przetwarzania Unity lub przed zakończeniem animacji okrągłych ikon.
W większości przypadków ponowne uruchomienie Unity i Visual Studio powinno to naprawić.
Nie mogę powiedzieć, który z nich jest przyczyną problemu, ale omówię najbardziej prawdopodobne rozwiązanie, aby to naprawić.
Fix Część 1:
-
Pobierz i zainstaluj Visual Studio Tools for unity z tego linku. Zrób to. natomiast Unity i Visual Studio są zamknięte.
-
Z edytora Unity przejdź do Edytuj → Preferencje ... → Narzędzia Zewnętrzne . W rozwijanym menu External Script Editor zmień to na Visual Studio 2015.
Fix Część 2:
Jeśli nowo utworzone pliki C# pojawiają się jako różne to postępuj zgodnie z instrukcją poniżej:
-
Z Visual Studio przejdź do Narzędzia → opcje... → Narzędzia dla jedności → różne . W obszarze Pokaż ikonę łączności , ustaw ją na
true
, a następnie uruchom ponownie program Visual Studio. -
Po ponownym uruchomieniu ikona połączenia powinna być teraz dostępna w 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ązowy znacznik zaznaczenia icon. Teraz, kiedy tworzysz nowy plik C# w Unity, powinien on otworzyć się bez słowa .
Fix Część 3:
Nadal nie Naprawiono?
Ponownie zaimportuj projekt, a następnie otwórz projekt C#.
- Zamknij Visual Studio.
-
From Unity, re-import project by going to Assets → Reimport Wszystkie .
-
Teraz otwórz projekt w Visual Studio, przechodząc do aktywów → Open C# Project . Spowoduje to ponowne załadowanie projektu i naprawienie możliwych problemów z plikiem rozwiązania.
Fix Część 4:
Nadal nie Naprawiono?
Naprawić każdy plik C# indywidualnie.
-
Kliknij na Pokaż wszystkie pliki icon.
-
Wybierz skrypt, który nie wykonuje autouzupełniania, a następnie kliknij prawym przyciskiem myszy i wybierz Dołącz do projektu.
Fix Część 5:
Nie Naprawiono jeszcze?
Kredyt idzie do chrisvarnz dla tego konkretnego rozwiązania, które wydaje się działać dla wielu osób.
-
Close Visual Studio
-
Przejdź do katalogu projektu i usuń wszystkie wygenerowane pliki Visual Studio.
Są to rozszerzenia plików do usunięcia:
.csproj
.user
.sln
Przykład:
Powiedzmy, że nazwa Twojego projektu nazywa się
Target_Shoot
, tak powinny wyglądać pliki do usunięcia like: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.
-
Kliknij dwukrotnie skrypt ponownie Z Unity, który powinien wygenerować nowy plik Visual Studio, a następnie otworzyć Visual Studio. To może rozwiązać twój problem.
Fix Część 6:
Jeśli nie działa, sprawdź, czy masz to błąd:
Nie znaleziono zadania "GetReferenceNearestTargetFrameworktask"
-
Zainstaluj Nuget PackageManager z tutaj.
-
Uruchom Ponownie Visual Visual.
Zobacz ta odpowiedź, aby uzyskać więcej informacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-17 00:14:56
Spróbuj tego,
-
W edytorze Unity przejdź do Menu, kliknij Edytuj - > Preferencje -> narzędzia zewnętrzne - > zewnętrzny edytor skryptów. Ustaw go na Visual Studio (zainstalowaną wersję VS).
-
Teraz w pasku Menu Przejdź do Edycja - > Ustawienia projektu - > Ustawienia odtwarzacza - > inne ustawienia - > Konfiguracja - > Sprawdź poziom zgodności API - > zmień go na zainstalowaną wersję.Net. W moim przypadku ustawiłem go na. Net 4.x
Teraz jeśli Visual Studio już działa przejdź do Visual Studio, poprosi o ponowne wczytanie projektu. Przeładuj projekt. Sprawdź, czy działa, jeśli nie Zamknij Visual Studio. Teraz otwórz plik cs z edytora Unity, a teraz powinien działać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-16 11:46:25
Znalazłem inny sposób, aby rozwiązać ten problem w wygodniejszy sposób:
- Wybierz uszkodzony plik w Eksploratorze rozwiązań.
- Otwórz jego właściwości.
- Przełącz pole " Build Action "z" Compile "na"None".
- następnie przełącz go z powrotem na "Compile".
To w jakiś sposób zabije synchronizację między Unity i Visual Studio.
Następnym razem, gdy Visual Studio przeładuje projekt, wyświetli ostrzeżenie. Wystarczy kliknąć na "Odrzuć".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-30 19:20:56
Rozładuj i przeładuj projekt w Visual Studio:
- Kliknij prawym przyciskiem myszy swój projekt w Solution Explorer
- select Unload Project
- select Reload Project
Naprawione!
Okazało się, że to rozwiązanie działa najlepiej (najłatwiej), po napotkaniu problemu wiele razy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 21:28:18
Jeśli zrobiłeś wszystkie powyższe i nadal nie działa, po prostu spróbuj tego: Uwaga: powinieneś mieć zaktualizowany VS.
Goto Unity > Edycja > 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. Jak tylko wybrałem to i dwukrotnie kliknąłem na plik c# z unity zaczęło działać.
Mam nadzieję, że tobie też pomoże.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-22 01:37:59
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-14 11:58:39
Trafiłem dzisiaj na te same problemy używając Visual Studio 2017 15.4.5 z Unity 2017.
Udało mi się rozwiązać problem klikając prawym przyciskiem myszy projekt w Visual Studio i zmieniając docelowy framework z 3.5 NA 4.5.
Mam nadzieję, że to pomoże komukolwiek w podobnym scenariuszu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-02 22:26:13
Dwie Alternatywne Opcje:
Fix 1
@ singleton wskazał mi w tym kierunku. Zamiast zmieniać cel w Visual Studio powinieneś zmienić go w Unity, ponieważ projekt jest automatycznie generowany.
Najpierw usuń automatycznie wygenerowane pliki Visual Studio: .csproj .użytkownik .sln
Następnie z poziomu Unity przejdź do PlayerSettings i pod 'Other Settings' Zmień 'Scripting Runtime Version' ze stabilnej 3.5 Na Experimental 4.6.
Jednak, że nie naprawił tego za mnie.
Fix 2
Zauważyłem, że wszystkie odniesienia do kodu związanego z Unity były oznaczone żółtym ostrzeżeniem. Sprawdź dzienniki błędów i sprawdź, czy tak jest. W szczególności sprawdź, czy pojawi się następujący błąd: getreferenceNearestTargetframeworktask
Jeśli tak spróbuj: Uruchom ponownie Instalator programu Visual Studio.
W narzędziach budowania 2017 kliknij Modyfikuj,
Upewnij się, że zaznaczono opcję "NuGet targets and build tasks". Powinno to zostać zaznaczone, jeśli klikasz na Universal Windows Platform development.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-12 15:16:26
Aktualizacja 2020 z Visual Studio Community 2019 i Unity 2019.3:
-
Otwórz Instalator Visual Studio jako Administrator, Wybierz, aby zmodyfikować aktualną instalację i dodaj "Tworzenie gier dla Unity"
-
Jeśli dodasz nowy skrypt c# w Unity teraz i otworzysz go (automatycznie) w Visual Studio, nie jest on opisany jako "różne" w górnej części okna, ale za pomocą "Assembly-CSharp", a autocomplete działa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-16 11:44:26
Znalazłem swoje rozwiązanie tworząc .plik cs z samego visual studio zamiast edytora unity
- Kliknij prawym przyciskiem myszy na folderze projektu w Eksploratorze rozwiązań
- Dodaj > nowy element
- wpisz "unity" w polu wyszukiwania w prawym górnym rogu
- Wybierz "Csharp MonoBehaviour"
- nazwij swój skrypt na dole i kliknij Dodaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-01 05:05:08
W moim przypadku poprawna wersja. Net nie została zainstalowana na moim komputerze. Zainstalowałem. NET 3.5 na moim komputerze i to działało dla mnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-19 15:54:22
Dla Windows lub macOS:
Pobierz / zainstaluj Visual Studio IDE (z narzędziami Unity)
Podczas instalacji, upewnij się, że instalacja
Tworzenie gier z Unity
Następnie używając Unity (możesz dwukrotnie kliknąć jeden z plików C#), otworzyć nowy projekt C# i Visual Studio IDE powinno otworzyć się z nową strukturą projektu.
Stamtąd powinieneś być w stanie zobaczyć, czego szukasz.
Na przykład:
Dla Linuksa (sugestia):
Try Monodevelop - dodatkowe informacje , zapewnia uzupełnianie kodu / podpowiedzi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-21 18:10:16
Moje autouzupełnianie również nie działało, ponieważ Visual Studio Tools for Unity nie było zainstalowane. Po zainstalowaniu Usuń automatycznie wygenerowane pliki Visual Studio. Inni mówili, że otwierasz plik ponownie i problem jest rozwiązany, ale tak nie jest.
Sztuczka polega na tym, że zamiast normalnie dwukrotnego kliknięcia pliku, musisz otworzyć plik C# z Unity kliknięciem prawym przyciskiem myszy, a następnie "otwórz projekt C#".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-14 02:39:06
Problem, z którym się spotkałem, polegał na tym, że projekt C# był ukierunkowany na inny Framework.NET (4.7.2), podczas gdy projekt Unity miał inny cel (. NET 3.5).
I fixed this by changing the target in Unity as -
File -> Build Settings -> Player Settings - > Other Settings - > API Poziom zgodności: ustaw go na wersję. NET, którą już posiadasz zainstalowane (Sprawdź swoją wersję. Net tutaj ). W moim przypadku było to 4.x
Po tym, Visual Studio działał idealnie i Autokorekta też została naprawiona.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-01 16:08:46
Spróbuj nacisnąć Ctrl + Alt + Space
(które przełącza się między trybami sugestii i standardowego dopełnienia)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-07 02:33:27
Z jakiegoś dziwnego powodu narzędzie "tworzenie gier z Unity" może zostać wyłączone w Visual Studio.
Aby to naprawić..
- Open Visual Studio
- przejdź do rozszerzenia → "Zarządzaj rozszerzeniami" → zainstalowane Dowiedz się więcej o narzędziach Visual Studio 2019 dla Unity]}
- jeśli jest wyłączona, włącz ją
- Restart VS
podziękowania dla Yuli Levtov ' s answer on another Thread
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-17 00:13:19
Ta strona pomogła mi rozwiązać problem.
Poprawka dla Unity odłączonego od Visual Studio
W edytorze Unity wybierz menu Edytuj > Preferencje..
Wybierz kartę Narzędzia zewnętrzne po lewej stronie.
Wybierz wersję unity z rozwijanej listy po prawej stronie
Kliknij regeneruj Pliki
You Done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-06 10:54:45
Rozwiązałem, aby zainstalować tę samą wersję. NET NA WIN, która została skonfigurowana w moim projekcie Unity. (Ustawienia Gracza)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-16 02:46:03
- Przejdź do opcji z menu Narzędzia, a następnie wybierz dokumenty w węźle środowisko. (Jeśli dokumenty nie są wyświetlane na liście, wybierz Pokaż wszystkie ustawienia w oknie dialogowym Opcje.)
- Zaznacz "Różne pliki w Eksploratorze rozwiązań" i kliknij OK. (Ta opcja wyświetla węzeł "Różne pliki" w Eksploratorze rozwiązań. Pliki różne to pliki, które nie są powiązane z projektem lub rozwiązaniem, ale mogą pojawić się w Eksploratorze rozwiązań dla Twojej wygody, jeśli zaznaczysz ta opcja.)
- Znajdź swój plik w Eksploratorze rozwiązań w sekcji "Różne Pliki". Następnie przeciągnij i upuść plik tam, gdzie powinien należeć i voila! Spowoduje to skopiowanie pliku do miejsca, w którym go upuścisz. Możesz teraz bezpiecznie usunąć starszy plik w folderze Różne pliki, jeśli chcesz to zrobić
Napisy: https://stackoverflow.com/a/47662523/10471480
W przypadku gdy katalog skryptów nie jest widoczny:
- Kliknij na " Pokaż wszystkie pliki" w Solution Explorer
- zlokalizuj folder Scripts.
- Kliknij prawym przyciskiem myszy skrypty i wybierz "Dołącz do projektu"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-07 13:02:12
Pamiętaj, że jeśli używasz narzędzia ReSharper, nadpisze ono IntelliSense i pokaże jego własne. Aby to zmienić, na VS, przejdź do Extensions - > ReSharper - > Options - > IntelliSense - > General następnie wybierz Visual Studio, a nie ReSharper.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-07 17:01:11
Przed ponownym uruchomieniem i / lub ponowną instalacją VS, najpierw spróbuj otworzyć dowolny inny projekt, aby sprawdzić, czy Intellisence działa, jeśli tak, to problem prawdopodobnie leży w Twoim bieżącym projekcie. Po pierwsze, najbardziej prawdopodobną ofiarą byłyby pakiety NUGET z oczekującymi aktualizacjami. Aby to naprawić,
- Kliknij prawym przyciskiem myszy na referencje
- Przejdź do zarządzania pakietami NUGET w pakietach NUGET
- Przejdź do aktualizacji Zainstaluj aktualizacje i sprawdź ponownie Intellisence
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-21 13:36:41
Próbowałem wszystkich z nich, ale okazało się, że muszę kliknąć prawym przyciskiem myszy rozwiązanie w Solution Explorer i dodać istniejące elementy i znaleźć plik C# assembly w Eksploratorze okna. Wydaje się, że istnieje wiele różnych problemów, które powodują ten błąd, jest to prawdopodobnie najprostsze rozwiązanie. Jeśli dwukrotnie klikniesz na swój skrypt z unity, nie wydaje się, aby przeciągnąć montaż wzdłuż.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-25 23:56:11
Kolejna możliwa poprawka:
- w oknie projektu kliknij na folder zasoby
- Kliknij prawym przyciskiem myszy i utwórz - > C# Script Kliknij dwa razy i poczekaj.
Z jakiegoś powodu ta praca.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-23 02:34:58
Żadne z powyższych rozwiązań nie zadziałało. Jednak otworzyłem plik ProjectName.CSPROJ
i ręcznie dodałem nowy plik i działał jak charm
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-16 11:46:41
Zadziałało na mnie to, że skopiowałem cały kod wewnątrz zepsutej klasy i usunąłem ten plik. Następnie otworzyłem pusty plik o tej samej nazwie i wklejałem z powrotem.
Result : piękne podkreślenia składni wróciły!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-13 17:34:37
Spróbuj z kombinacją: Ctrl + Alt + Spacja
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-10 07:15:03
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ń plik .sln
2. Po drugie, przejdź do unity i kliknij dwukrotnie skrypt. Wtedy Visual Studio zostanie otwarte z błędem,
- następnie kliknij ok i zamknij Edytor Visual Studio.
- na koniec wyłącz program Windows Defender, a następnie przejdź do katalogu projektu i pojawi się plik
.csproj
. Wystarczy dwukrotnie kliknąć i otworzyć to w Edytorze Visual Studio otwórz folder scripts wewnątrz folderu assets i otwórz Skrypty, a autocompletion będzie działać idealnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-25 05:02:40