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

Обновлено: 20.11.2024

Я следовал официальному пошаговому руководству "Visual Studio Code and Unity", но, похоже, что-то напутал, потому что Intellisense не видит ничего, связанного с Unity.

Например, класс MonoBehaviour и его элементы (например, .transform) или обратные вызовы Unity, такие как Start или Update.

\$\begingroup\$ попробуйте установить правильную IDE в настройках-> внешние инструменты. если нет, это означает, что IDE и единство не синхронизированы. в большинстве случаев это происходит, я просто удаляю оба и переустанавливаю их. новая версия Unity, установите с ней сообщество Visual Studio 2019. попробуй это сделать. \$\конечная группа\$

\$\begingroup\$ Это распространенная проблема, по которой вы можете найти существующие вопросы и ответы, включая эту и многие другие, которые вы можете найти с помощью поиска. Типичными решениями являются закрытие Unity и среды IDE, затем удаление файлов решения в папке проекта, позволяя Unity повторно сгенерировать их при следующей загрузке и открытии сценария. \$\конечная группа\$

\$\begingroup\$ @virtouso Я только что переустановил свой компьютер и не устанавливал VS19 Community с Unity, потому что на этот раз я хотел использовать Code. Код использует инструменты Unity, установленные с VS19? \$\конечная группа\$

5 ответов 5

\$\begingroup\$ Просмотрев множество решений этой проблемы, мне помогло именно ваше. \$\конечная группа\$

Ну, источник этой проблемы меняется от проблемы к проблеме. Поэтому, если это не решит вашу проблему, обязательно прочитайте ниже.

В моем случае это произошло из-за изменения пути установки по умолчанию для новых приложений.

Я изменил путь установки по умолчанию на свой жесткий диск, поэтому мне не нужно вручную менять путь установки каждого нового приложения с твердотельного накопителя на жесткий диск.

Проблема в том, что некоторые приложения смотрят только на диск, на котором установлена ​​Windows.

Поэтому теперь я меняю путь установки по умолчанию на свой SSD каждый раз, когда обновляю Unity, поэтому Visual Studio будет устанавливаться по пути, по которому VS Code будет искать библиотеки DLL.

Но иногда этого будет недостаточно, например, в этот раз я снова потерял время и до сих пор не понял, как это сделать правильно. Может быть, я просто сдамся и всегда буду вручную менять путь установки. Что я сделал:

  • Мне пришлось удалить Unity, Visual Studio и перезагрузить компьютер
  • Затем установите Unity, Visual Studio, перезагрузите компьютер
  • В Unity > «Настройки» переключите IDE на Visual Studio.
  • Открыл файл, который открыл Visual Studio.
  • Переключил IDE на Visual Studio Code.
  • Работает.

Обновление:

Я только что удалил свой старый Unity и установил новый, и оказалось, что переустановка Visual Studio и перезагрузка не нужны.

Просто откройте файл в Visual Studio в качестве интегрированной среды разработки, а затем переключитесь на Visual Studio Code.

Здесь вы можете увидеть недостающую функциональность:

Как видно, объект преобразования не открывает меню автозаполнения.

Версия Unity: 5.5.2f1
Visual Studio 2015
Установлены инструменты Visual Studio для Unity

30 ответов 30

Автозаполнение отсутствует, поскольку в сценарии вместо названия проекта указано "Разные файлы". Взгляните на изображение ниже, взятое из видео в вашем вопросе:

Сообщение "Miscellaneous Files" может появляться по многим причинам:

Это также может произойти из-за сбоя Unity, когда Visual Studio все еще открыта, что приводит к повреждению некоторых файлов.

Это может произойти из-за того, что Unity была закрыта, а затем снова открыта, но больше не подключена к Visual Studio. При открытии Visual Studio вы получаете "Miscellaneous Files" без автозаполнения.

Это может произойти, если Visual Studio Tools for unity не установлены.

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

В большинстве случаев это должно исправить перезапуск Unity и Visual Studio.

Я не могу сказать, какой из них вызывает проблему, но я расскажу о наиболее вероятном решении, чтобы исправить это.

Исправить, часть 1:

Загрузите и установите Инструменты Visual Studio для единства по этой ссылке. Сделайте это, пока Unity и Visual Studio закрыты.

В редакторе Unity выберите ПравкаНастройки. → Внешние инструменты. В раскрывающемся меню Внешний редактор сценариев измените его на Visual Studio 2015.

Исправить, часть 2:

В Visual Studio выберите ИнструментыПараметрыИнструменты для UnityРазное. В разделе Показать значок подключения установите для него значение true, а затем перезапустите Visual Studio.

Исправить, часть 3:

Все еще не исправлено?

Закройте Visual Studio.

Из Unity повторно импортируйте проект, выбрав АктивыПовторно импортировать все.

Исправить, часть 4:

Все еще не исправлено?

Нажмите значок Показать все файлы.

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

Исправить, часть 5:

Благодарим chrisvarnz за это конкретное решение, которое, похоже, сработало для многих людей.

Закрыть Visual Studio

Перейдите в каталог проекта и удалите все сгенерированные файлы Visual Studio.

Это расширения файлов, которые нужно удалить:

Допустим, ваш проект называется Target_Shoot , вот как должны выглядеть удаляемые файлы:

Не удаляйте больше ничего.

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

Исправить, часть 6:

Если не работает, проверьте, возникает ли у вас эта ошибка:

Задача GetReferenceNearestTargetFrameworkTask не найдена

Установите Nuget PackageManager отсюда.

Перезапустите Visual Studio.

Дополнительную информацию см. в этом ответе.

Спасибо за указатель разных файлов! Закрытие VS, удаление проектов VS и sln, а затем двойной щелчок скрипта в Unity (таким образом, повторное создание файлов проекта и повторное открытие VS) исправили это для меня. Я бы рекомендовал попробовать это до кнопки "повторно импортировать все", так как это обед/ночь для нетривиальных проектов.

В большинстве случаев это вызвано созданием новых сценариев или их перемещением в другие папки в Unity. Всякий раз, когда перезапуск Unity и VS не решает проблему, я просто удаляю файлы *.csproj и *.sln и запускаю Unity. Обычно это работает

@gollumullog Хорошо. Поскольку это сработало для нескольких человек, я обновил свой ответ, чтобы включить это.

В редакторе Unity перейдите в меню, нажмите «Правка» -> «Настройки» -> «Внешние инструменты» -> «Внешний редактор сценариев». Установите его в Visual Studio (ваша установленная версия VS).

Теперь, если Visual Studio уже запущена, перейдите в Visual Studio, он попросит перезагрузить проект. Перезагрузите проект. Проверьте, работает ли он, если не закройте Visual Studio. Теперь откройте файл cs из редактора Unity, и теперь он должен работать.

Это сработало и для меня. Кроме того, еще одна вещь, которую я сделал в Unity 2020.2.0a13, это снять и снова установить отметку в Edit/Project Settings/Player/Other Settings: Auto Graphics API. После перезапуска Visual Studio автозаполнение вернулось :D

Я нашел другой способ решить эту проблему более удобным способом:

  1. Выберите поврежденный файл в обозревателе решений.
  2. Откройте его свойства.
  3. Переключите поле "Действие сборки" с "Компилировать" на "Нет".
  4. Затем снова переключите его на "Компилировать".

Это каким-то образом уничтожит синхронизацию между Unity и Visual Studio.

В следующий раз, когда Visual Studio перезагрузит проект, появится предупреждение. Просто нажмите "Отменить".

Если вы сделали все вышеперечисленное, но все равно не работает, попробуйте следующее: Примечание: вы должны были обновить VS.

Надеюсь, это поможет и вам.

Отлично подходит для тех, у кого Visual Studio была установлена ​​до Unity, у меня это сработало после установки инструмента VS для Unity.

Выгрузите и перезагрузите проект в Visual Studio:

  • щелкните правой кнопкой мыши свой проект в обозревателе решений
  • выберите «Выгрузить проект».
  • выберите "Обновить проект".

Я обнаружил, что это решение работает лучше всего (самое простое), так как сталкивался с проблемой несколько раз.

Спасибо за помощь! Это сработало, но я чувствую, что мы вернулись в 90-е, и нам нужно перезапустить Windows, только на этот раз это VS 2017.

  1. Выберите проект в Visual Studio.
  2. Нажмите кнопку "Обновить".

Вау! Ничто другое не помогло мне; Переустановите VS, даже переустановите Unity, чтобы он переустановил VS, удалив файлы .sln и .cjsproj, чтобы они были перегенерированы. ничего не помогло .. но, наконец, простой щелчок в обозревателе решений, чтобы показать папки, похоже, сделал это: o

Эта страница помогла мне решить проблему.

В редакторе Unity выберите меню «Правка» > «Настройки».

Выберите вкладку "Внешние инструменты" слева.

Для внешнего редактора сценариев выберите имеющуюся у вас версию Visual Studio.

Нажмите «Регенерировать файлы»

Сегодня я столкнулся с той же проблемой, используя Visual Studio 2017 15.4.5 с Unity 2017.

Мне удалось решить проблему, щелкнув правой кнопкой мыши проект в Visual Studio и изменив целевую платформу с 3,5 на 4,5.

Надеюсь, это поможет кому-нибудь еще в похожем сценарии.

Два альтернативных варианта:

Исправить 1

@singleton указал мне в этом направлении. Вместо изменения цели в Visual Studio вам следует изменить ее в Unity, поскольку проект создается автоматически.

Затем из Unity перейдите в PlayerSettings и в разделе «Другие настройки» измените «Версия выполнения сценариев» со «Стабильная 3.5» на «Экспериментальная 4.6».

Однако мне это не помогло.

Исправить 2

Я заметил, что все ссылки на код, связанный с Unity, отмечены желтым предупреждением. Проверьте свои журналы ошибок и посмотрите, так ли это. В частности, посмотрите, появляется ли следующая ошибка: getreferenceNearestTargetframeworkTask

Если это так, попробуйте снова запустить установщик Visual Studio.

В Build Tools 2017 нажмите "Изменить"

Убедитесь, что установлен флажок "Цели Nuget и задачи сборки". Это должно стать галочкой, если вы нажмете на разработку для универсальной платформы Windows.

Если вы наш Patreon, войдите в систему, чтобы насладиться чтением без рекламы и получить доступ к эксклюзивным статьям Patreon.

Свяжитесь

Последние публикации

Поиск сообщений по категориям

Опубликовано 09 ноября 2020 г., 14:32 (+0800) ,
Последнее обновление 16 февраля 2022 г., 23:13 (+0800)
Владелец этой статьи?

Если вам понравилась наша статья, найдите время, чтобы проверить остальную часть нашего сайта! У нас есть множество статей, руководств и даже материалов по веб-разработке, связанных с Unity!

Одним из самых больших преимуществ использования Microsoft Visual Studio для написания сценариев Unity является IntelliSense — средство завершения кода в Visual Studio, предлагающее рекомендации по мере написания кода и контекстно предоставляющее вам информацию о классах, свойствах и методах, которые с которым вы работаете.

Учитывая огромный API сценариев Unity, IntelliSense является чрезвычайно полезной функцией, особенно для программистов, которые только начинают разрабатывать игры и программное обеспечение с помощью Unity; и хотя мы хотели бы сказать, что IntelliSense автоматически настраивается и связывается с API Unity, когда вы устанавливаете его с помощью редактора Unity, иногда это просто не так. Итак, если вы настроили и Unity, и Visual Studio, но обнаружили, что IntelliSense по-прежнему не предлагает предложений API Unity, то это руководство для вас.

Может быть много причин, по которым IntelliSense не работает должным образом на вашем устройстве, и мы предполагаем, что вы уже изрядно покопались в Интернете, прежде чем наткнулись на нашу статью. Поэтому мы составили своего рода оглавление ниже, поэтому, если вы уже пробовали некоторые из наших решений, вы можете сразу их пропустить.

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

Статья продолжается после рекламы:

1. Мой IntelliSense не работает?

Чтобы IntelliSense могла обнаруживать API Unity и работать с ним, Visual Studio необходимо:

  1. быть связанным с редактором Unity и;
  2. Установите соответствующие расширения (о них читайте далее)

Если вы установили Visual Studio через Unity Hub, это может быть настроено автоматически, но не всегда. Из-за множества способов установки Unity и Visual Studio могут возникнуть неправильные настройки, и вы можете столкнуться с тем, что Visual Studio не будет интегрироваться в Unity, а функция IntelliSense не будет должным образом связана с API Unity.

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

Если вы видите это, значит, на вашем устройстве не настроена технология IntelliSense.

Чтобы проверить правильность настройки IntelliSense, откройте любой скрипт в редакторе Unity и обратите внимание на две вещи:

  1. Независимо от того, указано ли в раскрывающемся списке в верхнем левом углу Разные файлы. Если да, то IntelliSense не настроен.
  2. Попробуйте объявить переменную Unity, например GameObject . Если IntelliSense настроен правильно, Visual Studio должен предложить вам автозаполнение, прежде чем вы закончите ввод.

2. Запускаем IntelliSense

Итак, если IntelliSense не работает, что делать?

а. Открывайте свои скрипты из Unity

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

Если при этом IntelliSense по-прежнему не работает, выполните следующие действия:

б. Настройка внешнего редактора скриптов Unity

В редакторе Unity откройте окно настроек, выбрав Правка > Настройки. Затем щелкните 1) вкладку «Внешние инструменты».

Вам потребуется установить внешний редактор сценариев.

Задайте 2) во внешнем редакторе сценариев версию Visual Studio, которую вы установили вместе с Unity, затем нажмите 3) кнопку «Регенерировать файлы проекта» (если она есть).

После этого перезапустите Visual Studio и проверьте, работает ли IntelliSense. Если это все еще не так, возможно, вы пропали без вести…

Если Visual Studio не отображается в раскрывающемся списке, вам придется использовать параметр «Обзор…» (см. рисунок выше), чтобы найти его. Обычно он находится в папке C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe для устройств Windows.

Статья продолжается после рекламы:

в. Инструменты Visual Studio для Unity

Чтобы установить это, откройте Visual Studio и выберите "Инструменты" > "Получить инструменты и компоненты".

Откроется установщик Visual Studio.

Примечание. Чтобы открыть это окно, вам потребуются права администратора, поскольку оно вносит изменения в установку Visual Studio на вашем компьютере.

Открыв программу установки, перейдите в раздел «Рабочие нагрузки» и найдите «Разработка игр с Unity». Установите флажок и нажмите кнопку «Изменить» в правом нижнем углу, чтобы начать установку.

Установите рабочую нагрузку Unity для разработки игр.

Всплывающее окно может попросить вас закрыть определенные процессы перед началом установки. В этом случае закройте проект Visual Studio и приложение Unity Editor.

По завершении установки перезапустите Unity и Visual Studio, а затем проверьте, работает ли IntelliSense.

Статья продолжается после рекламы:

Если IntelliSense по-прежнему отказывается работать, вы можете открыть редактор Unity и выбрать «Правка» > «Настройки проекта» и получить доступ к вкладке «Проигрыватель» (или «Настройки проигрывателя»). Прокрутите вниз до вложенной вкладки «Другие настройки» и найдите раскрывающийся список «Уровень совместимости API» под заголовком «Конфигурация».

Вы хотите установить другой параметр уровня совместимости API и посмотреть, какой из них подходит для вашего устройства.

Настройка уровня совместимости API вложена довольно глубоко.

д. Повторное создание файлов проекта Unity

Если предложенные выше решения не сработали для вас, вы также можете попробовать это решение в одном из наших комментариев.

Примечание: сделайте резервную копию вашего проекта Unity, прежде чем пытаться это сделать, так как мы удаляем некоторые важные файлы проекта и позволяем Unity создать их повторно.

3. Заключение

Как и в случае с другими статьями в блоге, мы будем рады, если вы оставите комментарий ниже, особенно если вы:

  1. Найти ошибки в этой статье или;
  2. Найдите исправление IntelliSense, которого нет в этой статье

Ваши комментарии дополнят информацию, которая уже есть здесь, и помогут другим будущим читателям!

4. Видеоруководство

Этот пост недостаточно нагляден? Возможно, вам поможет наш видеогид из этого поста.

Статья продолжается после рекламы:

Есть 9 комментариев:

Щелкните правой кнопкой мыши обозреватель решений в Visual Studio, решение также сработало для меня

Я думал, что выбрал Visual Stuio в качестве редактора внешних скриптов, но, видимо, это было не так, и когда я это сделал, все заработало :)

Большое спасибо!

У меня уже установлен и отлично работает VS2019 16.11.1, а также инструменты Unity.
Я установил Unity по ссылке для скачивания в руководстве, которое указывало на 2017.1.0f. Unity изменила это на последнюю бесплатную версию 2020.3.16f, и у меня была описанная проблема.
Несмотря на то, что объекты Unity не подсвечивались и не имели автозавершения, скрипты работали нормально?
Все, что мне нужно было сделать, это установить внешний редактор в Unity, а затем закрыть VS.
В следующий раз я открыл скрипт от Unity, который открыл VS и волшебным образом все теперь работает.
Отличные советы, спасибо

Спасибо за статью. Пункт д (т.е. повторное создание файлов вашего проекта Unity) был последним шагом, который мне нужно было сделать.

Спасибо! Ваши инструкции были краткими, понятными и в моем случае полностью решили эту проблему. Большое спасибо.

Я следовал этому руководству и примерно 5 другим, в которых было то же самое, но ничего не работало.

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

Возможно, стоит включить это в руководство... Потому что я чуть не начал есть свою клавиатуру.

Спасибо, что нашли время опубликовать это. Опция «перезагрузка с зависимостями» есть в Unity или в Visual Studio? Я хочу добавить ваш совет в статью, но не знаю, где его найти.

Спасибо за статью.

Я столкнулся с этой проблемой, и в раскрывающемся списке вверху слева указано "Разные файлы" в моем VS.

Привет, xigou, спасибо за комментарий! Мы добавили ваше решение в нашу статью.

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

Открывать скрипты Unity в Visual Studio

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

Доступ к документации Unity

Вы можете быстро получить доступ к документации по сценариям Unity из Visual Studio. Если инструменты Visual Studio для Unity не найдут документацию по API локально, она попытается найти ее в Интернете.

  • В Visual Studio выделите или наведите курсор на API Unity, о котором вы хотите узнать, затем нажмите Ctrl+Alt+M, Ctrl+H.
  • Вы также можете использовать меню «Справка» > «Справочник API Unity» вместо привязки клавиш.

  • В Visual Studio для Mac выделите или наведите курсор на API Unity, о котором хотите узнать, а затем нажмите Cmd+'
  • Вы также можете использовать меню «Справка» > «Справочник API Unity» вместо привязки клавиш.

Intellisense для сообщений API Unity

Дополнение кода Intellisense упрощает реализацию сообщений API Unity в сценариях MonoBehaviour и помогает в изучении API Unity. Чтобы использовать сообщения IntelliSense для Unity:

Поместите курсор на новую строку внутри тела класса, производного от MonoBehaviour.

Начните вводить название сообщения Unity, например OnTriggerEnter .

После ввода букв "ontri" появляется список предложений IntelliSense.

Выбор в списке можно изменить тремя способами:

С помощью клавиш со стрелками вверх и вниз.

Нажав мышью на нужный элемент.

Продолжая вводить название нужного элемента.

IntelliSense может вставить выбранное сообщение Unity, включая любые необходимые параметры:

Нажав Tab.

Нажав Enter.

Дважды щелкнув выбранный элемент.

Мастер сценариев Unity MonoBehavior

Вы можете использовать мастер MonoBehavior, чтобы просмотреть список всех методов API Unity и быстро внедрить пустое определение. Эта функция, особенно с включенным параметром «Создать комментарии к методу», полезна, если вы все еще изучаете, что доступно в Unity API.

Чтобы создать пустые определения метода MonoBehavior с помощью мастера MonoBehavior:

В Visual Studio поместите курсор туда, куда вы хотите вставить методы, затем нажмите Ctrl+Shift+M, чтобы запустить мастер MonoBehavior. В Visual Studio для Mac нажмите Cmd+Shift+M.

В окне Создать методы скрипта установите флажок рядом с названием каждого метода, который вы хотите добавить.

Используйте раскрывающийся список версий Framework, чтобы выбрать нужную версию.

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

Если вы хотите, чтобы мастер создавал комментарии для выбранных вами методов, установите флажок «Создать комментарии к методам». Эти комментарии призваны помочь вам понять, когда вызывается метод и каковы его основные обязанности.

Нажмите кнопку OK, чтобы выйти из мастера и вставить методы в свой код.

Обозреватель проектов Unity

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

  • В главном меню Visual Studio выберите «Вид» > «Проводник проектов Unity». Сочетание клавиш: Alt+Shift+E

  • В Visual Studio для Mac Панель решений автоматически ведет себя так при открытии проекта Unity.

Отладка Unity

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

Отладка в редакторе Unity

Начать отладку

  1. Подключите Visual Studio к Unity, нажав кнопку "Воспроизвести" с надписью "Присоединить к Unity" или используя сочетание клавиш F5.
  1. Подключите Visual Studio к Unity, нажав кнопку "Воспроизвести" или нажав Command + Return или F5.

  1. Переключитесь на Unity и нажмите кнопку "Играть", чтобы запустить игру в редакторе.

  1. Когда игра запущена в редакторе Unity при подключении к Visual Studio, любые обнаруженные точки останова приостанавливают выполнение игры и отображают строку кода, в которой игра достигла точки останова в Visual Studio.

Остановить отладку

Нажмите кнопку "Стоп" в Visual Studio или используйте сочетание клавиш Shift + F5.

Нажмите кнопку "Стоп" в Visual Studio для Mac или нажмите Shift + Command + Return.

Подключиться к Unity и играть

Для дополнительного удобства можно изменить кнопку "Присоединить к Unity" на "Присоединить к Unity и играть".

Нажмите маленькую стрелку вниз рядом с кнопкой "Присоединить к Unity".

Выберите «Присоединиться к Unity и играть» в раскрывающемся меню.

Кнопка воспроизведения получает надпись «Присоединить к Unity и играть». Нажатие этой кнопки или использование сочетания клавиш F5 теперь автоматически переключает в редактор Unity и запускает игру в редакторе, помимо присоединения отладчика Visual Studio.

Начать отладку и запустить редактор Unity можно за один шаг непосредственно из Visual Studio для Mac, выбрав конфигурацию "Присоединить к Unity и воспроизвести".

Если вы начали отладку с помощью конфигурации "Присоединить к Unity и воспроизвести", кнопка "Стоп" также остановит редактор Unity.

Отладка сборки проигрывателя Unity

Вы можете отлаживать разрабатываемые сборки проигрывателей Unity с помощью Visual Studio.

Включить отладку скриптов в проигрывателе Unity

В Unity откройте настройки сборки, выбрав «Файл» > «Настройки сборки».

В окне "Параметры сборки" установите флажки "Сборка для разработки" и "Отладка скрипта".

Выберите экземпляр Unity, к которому нужно прикрепить отладчик

В Visual Studio в главном меню выберите "Отладка" > "Подключить отладчик Unity".

В диалоговом окне "Выбор экземпляра Unity" отображается некоторая информация о каждом экземпляре Unity, к которому вы можете подключиться.

Project Имя проекта Unity, работающего в этом экземпляре Unity.

Machine Имя компьютера или устройства, на котором работает этот экземпляр Unity.

Редактор типов, если этот экземпляр Unity работает как часть редактора Unity; Player, если этот экземпляр Unity является автономным проигрывателем.

Порт Номер порта UDP-сокета, через который обменивается данными этот экземпляр Unity.

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

Выбор экземпляра Unity, которого нет в списке

Если у вас запущен известный проигрыватель Unity, которого нет в списке, вы можете использовать кнопку «Ввести IP» в окне «Выбор экземпляра Unity». Введите IP-адрес и порт запущенного проигрывателя Unity для подключения отладчика.

Чтобы упростить дальнейшую отладку этого проигрывателя, не вводя каждый раз IP-адрес и порт, включите параметр "Использовать сохраненные цели отладки" в меню "Инструменты" > "Параметры" > "Инструменты для Unity" > "Общие".

Visual Studio отобразит сохраненные цели отладки в качестве опции для кнопки "Присоединить к Unity".

  • В Visual Studio для Mac в верхнем меню выберите «Выполнить» > «Присоединить к процессу».
  • В диалоговом окне «Присоединение к процессу» выберите параметр «Отладчик Unity» в раскрывающемся меню «Отладчик» внизу.
  • Выберите экземпляр Unity из списка и нажмите кнопку "Присоединить".

Отладка библиотеки DLL в проекте Unity

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

В настоящее время инструменты Visual Studio для Unity поддерживают только управляемые библиотеки DLL. Он не поддерживает отладку библиотек DLL с собственным кодом, например написанных на C++.

Обратите внимание, что в описанном здесь сценарии предполагается, что у вас есть исходный код, т. е. вы разрабатываете или повторно используете собственный исходный код или у вас есть исходный код для сторонней библиотеки, и вы планируете разверните его в своем проекте Unity как DLL. Этот сценарий не описывает отладку библиотеки DLL, для которой у вас нет исходного кода.

Чтобы отладить управляемый проект DLL, используемый в вашем проекте Unity

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

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

Укажите правильный профиль платформы Unity в проекте DLL. В Visual Studio в свойствах проекта DLL задайте для свойства Целевая платформа используемую вами версию платформы Unity. Это библиотека базовых классов Unity, которая соответствует совместимости API, на которую нацелен ваш проект, например библиотеки базовых классов Unity full, micro или web. Это не позволит вашей библиотеке DLL вызывать методы платформы, которые существуют в других платформах или на других уровнях совместимости, но могут отсутствовать в используемой вами версии платформы Unity.

Скопируйте DLL в папку ресурсов вашего проекта Unity. В Unity ресурсы — это файлы, которые упаковываются и развертываются вместе с вашим приложением Unity, чтобы их можно было загружать во время выполнения. Поскольку библиотеки DLL связываются во время выполнения, библиотеки DLL должны быть развернуты как активы. Чтобы быть развернутым в качестве актива, редактор Unity требует, чтобы библиотеки DLL были помещены в папку Assets в вашем проекте Unity. Это можно сделать двумя способами:

Измените параметры сборки вашего проекта DLL, чтобы включить задачу после сборки, которая копирует выходные файлы DLL и PDB из выходной папки в папку Assets вашего проекта Unity.

Измените параметры сборки вашего проекта DLL, чтобы его выходная папка была папкой Assets вашего проекта Unity. Файлы DLL и PDB будут помещены в папку Assets.

Файлы PDB необходимы для отладки, поскольку они содержат символы отладки DLL и сопоставляют код DLL с формой исходного кода. Если вы ориентируетесь на устаревшую среду выполнения, инструменты Visual Studio для Unity будут использовать информацию из DLL и PDB для создания файла DLL.MDB, который представляет собой формат символа отладки, используемый устаревшим обработчиком сценариев Unity. Если вы ориентируетесь на новую среду выполнения и используете Portable-PDB, инструменты Visual Studio для Unity не будут пытаться выполнять какое-либо преобразование символов, поскольку новая среда выполнения Unity может изначально использовать Portable-PDB.

Дополнительную информацию о создании PDB можно найти здесь. Если вы ориентируетесь на новую среду выполнения, убедитесь, что для параметра «Отладочная информация» установлено значение «Портативный», чтобы правильно сгенерировать Portable-PDB. Если вы ориентируетесь на устаревшую среду выполнения, вам нужно использовать «Полный».

Отладьте свой код. Теперь вы можете отлаживать исходный код DLL вместе с исходным кодом проекта Unity и использовать все привычные функции отладки, такие как точки останова и пошаговое выполнение кода.

Сочетания клавиш

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

Команда Ярлык Имя команды быстрого доступа
Открыть Мастер MonoBehavior Ctrl+Shift+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Откройте проводник проекта Unity Alt+Shift+E View.UnityProjectExplorer
Доступ к документации Unity Ctrl+Alt+M, Ctrl+ H Help.UnityAPIReference
Присоединить к отладчику Unity (проигрывателю или редактору) нет по умолчанию Debug.AttachUnityDebugger

Вы можете изменить комбинации клавиш быстрого доступа, если вам не нравятся настройки по умолчанию. Информацию о том, как его изменить, см. в статье Определение и настройка сочетаний клавиш в Visual Studio.

Команда Ярлык Имя команды быстрого доступа
Открыть Мастер MonoBehavior Cmd+Shift+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Доступ к документации Unity Cmd+' Help.UnityAPIReference

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

Читайте также: