Перейти к содержимому

Почему visual studio не видит unity

  • автор:

Почему visual studio не видит unity

bidloKoder 27 окт 2021, 08:20

Добрый день, я начинающий программист, через год я создам игру известную на весь мир, но в данный момент мне нужна ваша помощь.

Повесил в инспекторе на объект Mesh Filter и Mesh Renderer, cоздал новый скрипт.
Объявляю массивы:
Код: Выделить всё Mesh mesh;
Vector3[] vertices;
int[] triangles;

Так вот Vector3 и Mesh не подсвечиваются цветом в синтаксисе (int подсвечивается как положено), хотя всё корректно работает.
Также методы и свойства mesh и vertices не обнаруживаются в выпадающем списке (triangles все корректно).

Код: Выделить всё GetComponent().mesh = mesh;

GetComponent при наборе тоже не отображается в списке, MeshFilter и далее тоже самое.

При этом ошибок никаких в консоли нет, а если запускать код, то он все корректно выполняет (конечный код рендерит треугольник на сцене). Я пробовал переустанавливать Unity и Visual Studio с полным их удалением, но это не помогло. В чем может быть причина?

bidloKoder UNец Сообщения: 2 Зарегистрирован: 27 июл 2015, 12:36

Re: Visual Studio 2019 не «видит» методы и объекты Unity

Alkos26Rus 27 окт 2021, 11:41

Устранение неполадок и известные проблемы (набор средств Visual Studio для Unity)

В этом разделе рассмотрены решения по устранению проблем, типичных для набора средств Visual Studio для Unity, приведено описание известных проблем и показано, как улучшить функционирование набора средств Visual Studio для Unity с помощью отчетов об ошибках.

Устранение неполадок соединения между Unity и Visual Studio

Подтверждение Editor Attaching включено или Code Optimization On Startup установлено значение Debug

В меню Unity выберите Edit / Preferences .

В зависимости от используемой версии Unity:

  • Подтвердите, что Code Optimization On Startup задано как Debug .
  • Или выберите вкладку External Tools . Убедитесь, что Editor Attaching включено поле проверка box.

Не удается подключить

  • Попробуйте временно отключить антивирусную программу или создать правила исключения для VS и Unity.
  • Попробуйте временно отключить брандмауэр или создать правила, разрешающие сетевое взаимодействие между VS и Unity по протоколам TCP/UDP.
  • Некоторые программы, например Team Viewer могут препятствовать обнаружению процессов. Попробуйте временно остановить все лишнее программное обеспечение, чтобы выяснить, повлияет ли это на что-либо.
  • Не переименовывайте основной исполняемый файл Unity, так как VSTU отслеживают только процессы «Unity.exe».

Сбои Visual Studio

Эта проблема может быть вызвана повреждением кэша MEF в Visual Studio.

Попробуйте удалить следующую папку, чтобы сбросить кэш MEF (перед этим закройте Visual Studio):

%localappdata%\Microsoft\VisualStudio\\ComponentModelCache 

Это должно исправить проблему. Если проблема не устранена, запустите командную строку разработчика для Visual Studio от имени администратора и выполните следующую команду:

 devenv /setup 

Visual Studio не отвечает

Некоторые подключаемые модули Unity, такие как Parse, FMOD, UMP (Universal Media Player), ZFBrowser или Embedded Browser, используют собственные потоки. Эта проблема возникает, когда подключаемый модуль подключает собственный поток к среде выполнения, что блокирует вызовы ОС. Это означает, что Unity не может прервать этот поток для отладчика (или перезагрузки домена) и перестает отвечать на запросы.

Для FMOD существует обходной путь. Вы можете передать флаг инициализации FMOD_STUDIO_INIT_SYNCHRONOUS_UPDATE , чтобы отключить асинхронную обработку и выполнять всю обработку в основном потоке.

Если вы разрабатываете собственный подключаемый модуль, рекомендуется использовать асинхронные вызовы процедур (APC) и SleepEx особенно , SignalObjectAndWait , MsgWaitForMultipleObjectsEx WaitForMultipleObjectsEx или WaitForSingleObjectEx функции для правильного сотрудничества с Unity и Mono, когда отладчику необходимо приостановить потоки.

Несовместимый проект в Visual Studio

Важно знать, что Visual Studio сохраняет состояние «Несовместимый» в параметрах проекта и не пытается перезагрузить проект, пока не будет явно использоваться Reload Project . Таким образом, после каждого шага устранения неполадок убедитесь, что вы попытаетесь повторно открыть решение и попытаться щелкнуть правой кнопкой мыши все несовместимые проекты и выбрать Reload Project .

  1. Убедитесь, что Visual Studio установлен в качестве внешнего редактора скриптов в Unity с помощью Edit / Preferences / External Tools .
  2. В зависимости от версии Unity:
    • Убедитесь, что подключаемый модуль Visual Studio установлен в Unity. Help / About должно отображаться сообщение, например Microsoft Инструменты Visual Studio для Unity, в нижней части экрана.
    • Unity 2020.x+: убедитесь, что вы используете последний пакет редактора Visual Studio в Window / Package Manager .
  3. Попробуйте удалить все файлы проектов и решений и папку .vs в проекте.
  4. Попробуйте воссоздать проекты или решение с помощью Open C# Project или Edit / Preferences / External tools / Regenerate Project files .
  5. Убедитесь, что вы установили рабочую нагрузку Game/Unity в Visual Studio.
  6. Попробуйте очистить кэш MEF, как описано здесь.
  7. Попробуйте повторно установить Visual Studio (с помощью рабочей нагрузки Game/Unity только для запуска).
  8. Попробуйте отключить сторонние расширения в случае, если они могут повлиять на расширение Unity. Tools / Extensions

Дополнительные перезагрузки или закрытие всех открытых окон в Visual Studio

Никогда не работайте с файлами проектов непосредственно из обработчика ресурсов или иного средства. Если вам действительно необходимо совершить операции с файлом проекта, мы предоставляем для этого интерфейс API. См. раздел Проблемы со ссылками на сборку.

Если происходят лишние перезагрузки или если при перезагрузке в Visual Studio закрываются все открытые окна, убедитесь в том, что установлены все необходимые целевые пакеты .NET. Дополнительные сведения см. ниже в разделе, посвященном платформам.

В случае исключений не происходит останов отладчика

При использовании предыдущей версии среды выполнения Unity (эквивалентной версии .NET 3.5), в случае необработанного исключения (вне блока try/catch) всегда происходит останов отладчика. Если исключение обрабатывается, отладчик использует окно параметров исключений для определения того, требуется ли останов.

В новой среде выполнения Unity (эквивалентной версии .NET 4.6) появился новый способ управления пользовательскими исключениями. В результате все исключения считаются «обработанными пользователем», даже если они произошли вне блока try/catch. Поэтому их необходимо явным образом задавать в окне параметров исключений, если требуется останов отладчика.

В окне Параметры исключений (отладка > исключений Windows > Параметры), разверните узел для категории исключений (например, исключения среды CLR, то есть исключения .NET) и выберите поле проверка для конкретного исключения, которое требуется поймать в этой категории (например, System.NullReferenceException). Можно также выбрать всю категорию исключений.

В ОС Windows система Visual Studio предлагает скачать целевую платформу Unity

При использовании устаревшей среды выполнения Unity (эквивалент .NET 3.5) Инструменты Visual Studio для Unity требуется платформа .NET Framework 3.5, которая по умолчанию не установлена в Windows 8 или 10. Чтобы устранить эту проблему, следуйте инструкциям по скачиванию и установке .NET Framework 3.5.

При использовании новой среды выполнения Unity пакеты для .NET, предназначенные для пакетов версии 4.6 или 4.7.1, также требуются в зависимости от версии Unity. Установщик Visual Studio можно использовать для быстрой установки (изменить установку, отдельные компоненты, категорию .NET, выбрать все пакеты назначения 4.x).

Проблемы со ссылкой на сборку или свойством проекта

Если ваш проект довольно сложен с точки зрения ссылок или требуется лучше контролировать этот этап создания, вы можете использовать наш API для работы с созданным содержимым проекта или решения. Вы также можете использовать файлы ответов в своем проекте Unity и обрабатывать их.

В последних версиях Visual Studio и Unity лучший подход, как представляется, использует пользовательский Directory.Build.props файл вместе с созданными проектами. Затем вы сможете внести свой вклад в структуру проекта, не вмешиваясь в процесс создания.

Точки останова с предупреждением

Если Visual Studio не удается найти исходное расположение для определенной точки останова, рядом с ней отображается предупреждение. Убедитесь, что используемый вами скрипт правильно загружен и используется в текущей сцене Unity.

Точки останова не срабатывают

Убедитесь, что используемый вами скрипт правильно загружен и используется в текущей сцене Unity. Закройте Visual Studio и Unity, а затем удалите все созданные файлы (*.csproj, *.sln), .vs папку и всю папку библиотеки. Дополнительные сведения об отладке C# можно найти на веб-сайте Unity.

Не удается выполнить отладку проигрывателей Android

Мы используем для обнаружения проигрывателей многоадресную рассылку (это стандартный механизм, применяемый в Unity), но затем применяется простое соединение TCP для подключения отладчика. Этап обнаружения — основная проблема для устройств Android.

Связь через Wi-Fi универсальна, однако она слишком медленная по сравнению с USB из-за задержки. Мы наблюдали отсутствие должной поддержки многоадресной рассылки у некоторых маршрутизаторов или устройств (этим известна серия Nexus).

Связь по USB обладает отличной скоростью для отладки. Инструменты Visual Studio для Unity теперь могут обнаруживать устройства USB и согласовывать с сервером ADB правильную переадресацию портов для отладки.

Проблемы с цветом intelliSense или кодом

Попробуйте обновить Visual Studio до последней версии. Выполните те же действия по устранению неполадок, что и для несовместимых проектов.

Известные проблемы

Применительно к набору средств Visual Studio для Unity существуют известные проблемы, которые возникают вследствие взаимодействия отладчика со старой версией компилятора C# в Unity. Мы работаем над устранением этих проблем, но в то же время могут возникать другие проблемы.

  • При отладке Unity иногда аварийно завершает работу.
  • При отладке Unity иногда зависает.
  • Пошаговая отладка с заходом и выходом из методов иногда ведет себя некорректно, особенно в итераторах или внутри инструкций switch.

Отчеты об ошибках

Помогите нам улучшить качество набора средств Visual Studio для Unity: отправляйте нам отчеты об ошибках при аварийном выходе, зависании или в случае других ошибок. Эти сведения помогают нам определять причину и устранять проблемы в наборе средств Visual Studio для Unity. Спасибо!

Как сообщить об ошибке в случае зависания Visual Studio

Существуют отчеты о том, что иногда Visual Studio зависает при отладке с помощью набора средств Visual Studio для Unity, но чтобы разобраться в проблеме, нам требуется больше данных. Вы можете помочь нам разобраться с проблемой, если выполните следующие действия.

Создание отчета о зависании Visual Studio во время отладки с помощью набора средств Visual Studio для Unity
  1. Откройте новый экземпляр Visual Studio.
  2. Откройте диалоговое окно «Присоединение к процессу». В новом экземпляре Visual Studio в главном меню выберите Отладка, Присоединение к процессу.
  3. Присоедините отладчик к замороженному экземпляру Visual Studio. В диалоговом окне Присоединение к процессу выберите замороженный экземпляр Visual Studio в таблице Доступные процессы , а затем нажмите кнопку Присоединить .
  4. Приостановите отладчик. В новом экземпляре Visual Studio в главном меню выберите Отладка, Прервать все или просто нажмите CTRL+ALT+BREAK.
  5. Создайте дамп потока. В окне командной строки введите следующую команду и нажмите клавишу ВВОД:

Debug.ListCallStack /AllThreads /ShowExternalCode 

    Откройте терминал и получите идентификатор процесса Visual Studio для Mac:

ps aux | grep "[V]isual Studio.app" 
lldb 
process attach --pid THE_PID_OF_THE_VSFM_PROCESS 
bt all 

Наконец, отправьте дамп потока по адресу vstusp@microsoft.com, а также опишите, что вы делали, когда среда Visual Studio зависла.

См. также

Visual Studio не видит классы Unity

Создаю скрипт C# в Unity. Начинаю редактировать, но Visual Studio не выдает мне никаких подсказок по синтаксису Unity (Texture,Colaider и т.п.), это весьма напрягает. Кто-нибудь знает как исправить это?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Visual Studio и Server Management Studio не видит SQL сервер
Здравствуйте, собственно вся проблема в заголовке. При попытке создать бд в студии через.

Описание методов Unity в Visual Studio C#
Я начинающий в программирование, и мне интересно я просто даже не могу понять как задать этот.

Работа с unity в visual studio 2017
Я абсолютный ноль в Unityи пытаюсь найти какие нибудь статьи для новичков. В частности нужно.

Unity сбрасывает настройки проекта Visual Studio
Запускаю Юнити. После этого сбрасываются настройки .csproj Открываю скрипт. Запускается Visual.

Администратор

Эксперт .NET

16464 / 12929 / 5091
Регистрация: 17.03.2014
Сообщений: 26,341
Записей в блоге: 1

Python byname, видимо не добавлены ссылки на сборки Unity. По идее проще всего это сделать если создавать проект правильного типа. Не спрашивай какой тип — я не работал с Unity.

910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391

ЦитатаСообщение от Python byname Посмотреть сообщение

Кто-нибудь знает как исправить это?

Очевидно подключить нужные библиотеки для этого в ссылки

либо давайте больше информации, т.к вообще такая интеграция должна быть почти из коробки как я помню

Почему Visual studio code не видит unity?

Здравствуйте, возникла проблема. Изначально в VSC в логах omnisharp, который как я понял отвечает за то, что VSC не выдает подсказки по Unity ( такие как tranform, rigidbody и т.д.), была ошибка по поводу того, что ему нужен именно 4.7.1 net fraemwork. Проблема решилась удалением обновлений net fraemwork т.е. отката до примерно 3 версии и установкой сначала 4.7.1, а после и 4.8.1 т.к. VSC ругалась на его отсутствие. Ошибки больше не выдавало, но VSC все равно не хочет видеть файлы unity ( или что-то другое, что он должен видеть ). Расширения для VSC все установлены а именно: C#, unity tools, unity snippets, unity debbuger. В unity так же выбран VSC для открытия скриптов.

Логи из omnisharp в VSC:

Starting OmniSharp server at 05.09.2020, 00:49:10 Target: d:\games\unityProjects\ddddddd\ddddddd.sln OmniSharp server started. Path: c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\OmniSharp.exe PID: 3720 [info]: OmniSharp.Stdio.Host Starting OmniSharp on Windows 6.2.9200.0 (x64) [info]: OmniSharp.Services.DotNetCliService DotNetPath set to dotnet [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Located 2 MSBuild instance(s) 1: Visual Studio Community 2019 16.5.30002.166 - "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin" 2: StandAlone 16.8.0 - "c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin" [warn]: OmniSharp.CompositionHostBuilder It looks like you have Visual Studio 2019 installed without .NET Core SDK support which is required by OmniSharp. Try updating Visual Studio 2019 installation with .NET Core SDK to enable better MSBuild support. [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator MSBUILD_EXE_PATH environment variable set to 'c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin\MSBuild.exe' [info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Registered MSBuild instance: StandAlone 16.8.0 - "c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin" CscToolExe = csc.exe CscToolPath = c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin\Roslyn MSBuildExtensionsPath = c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild MSBuildToolsPath = c:\Users\tolstyak\.vscode\extensions\ms-dotnettools.csharp-1.23.2\.omnisharp\1.37.1\.msbuild\Current\Bin [info]: OmniSharp.Cake.CakeProjectSystem Detecting Cake files in 'd:\games\unityProjects\ddddddd'. [info]: OmniSharp.Cake.CakeProjectSystem Could not find any Cake files [info]: OmniSharp.MSBuild.ProjectSystem Detecting projects in 'd:\games\unityProjects\ddddddd\ddddddd.sln'. [info]: OmniSharp.Script.ScriptProjectSystem Detecting CSX files in 'd:\games\unityProjects\ddddddd'. [info]: OmniSharp.Script.ScriptProjectSystem Could not find any CSX files [info]: OmniSharp.WorkspaceInitializer Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0 [info]: OmniSharp.WorkspaceInitializer Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0 [info]: OmniSharp.WorkspaceInitializer Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100 [info]: OmniSharp.WorkspaceInitializer Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110 [info]: OmniSharp.WorkspaceInitializer Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140 [info]: OmniSharp.WorkspaceInitializer Configuration finished. [info]: OmniSharp.Stdio.Host Omnisharp server running using Stdio at location 'd:\games\unityProjects\ddddddd' on host 5008. [info]: OmniSharp.OmniSharpWorkspace Miscellaneous file: d:\games\unityProjects\ddddddd\Assets\scri.cs added to workspace
  • Вопрос задан более трёх лет назад
  • 3193 просмотра

2 комментария

Средний 2 комментария

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *