Вы можете использовать отладчик для проверки исходного кода во время работы приложения. Unity поддерживает следующие редакторы кода для отладки кода C#:
- Visual Studio (с подключаемым модулем инструментов Visual Studio для Unity)
- Visual Studio для Mac
- Всадник Jetbrains
- Код Visual Studio (экспериментальный)
Несмотря на то, что эти редакторы кода немного различаются поддерживаемыми функциями отладки, все они предоставляют базовые функции, такие как точки останова, пошаговое выполнение и проверка переменных. Вы можете подключить эти редакторы кода к Редактору Unity или Проигрывателю Unity для отладки кода.
Управляемая отладка кода в Unity работает на всех платформах, кроме WebGLJavaScript API, который отображает 2D- и 3D-графику в веб-браузере. . Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
См. в Словарь. Он работает как с Mono, так и с серверной частью сценариев, используемой в Unity. Подробнее
См. в Словарь и IL2CPPРазработанный Unity сервер сценариев, который можно использовать в качестве альтернативы Mono при создании проектов для некоторых платформ. Подробнее
См. в Словарь механизмы сценариевСреда, обеспечивающая работу сценариев в Unity. Unity поддерживает три различных бэкэнда для сценариев в зависимости от целевой платформы: Mono, .NET и IL2CPP. Однако универсальная платформа Windows поддерживает только два: .NET и IL2CPP. Подробнее
См. в Словарь.
Настроить редактор кода
Visual Studio (Windows)
Установщик редактора Unity позволяет установить Visual Studio с помощью Инструменты Visual Studio для Unity плагинНабор кода, созданного вне Unity, который создает функциональность в Unity. В Unity можно использовать два типа подключаемых модулей: управляемые подключаемые модули (управляемые сборки .NET, созданные с помощью таких инструментов, как Visual Studio) и собственные подключаемые модули (библиотеки собственного кода для конкретной платформы). Подробнее
См. в Словарь. Это рекомендуемый способ настройки Visual Studio для отладки с помощью Unity.
Если Visual Studio уже установлена на вашем компьютере, откройте ее и перейдите в раздел Инструменты > Получить инструменты и функции…, чтобы найти и установить Инструменты Visual Studio. для подключаемого модуля Unity.
Visual Studio для Mac
Установщик редактора Unity позволяет установить Visual Studio для Mac. Это рекомендуемый способ настройки Visual Studio для Mac для отладки с помощью Unity.
Если Visual Studio для Mac уже установлена на вашем компьютере, откройте ее и перейдите в раздел Visual Studio > Расширения > Установить из файла… чтобы найти и установить подключаемый модуль Visual Studio Tools for Unity.
Наездник JetBrains
Вы можете использовать установку JetBrains Rider по умолчанию для отладки кода в Unity на Windows или Mac. Посетите веб-сайт JetBrains, чтобы установить его.
Код Visual Studio
Для отладки в Unity с помощью Visual Studio Code необходимо установить расширение. См. документацию Visual Studio Code, чтобы настроить Visual Studio Code в качестве редактора кода для вашего проекта Unity. Следуйте инструкциям Visual Studio Code, относящимся к расширению Debugger for Unity, чтобы установить его. . Поддержка Visual Studio Code в Unity является экспериментальной, поскольку Unity официально не поддерживает расширение Debugger for Unity.
Укажите внешний редактор скриптов в Unity
После того, как вы установили редактор кода, откройте Unity, перейдите в раздел Настройки > Внешние инструменты и установите Внешний редактор сценариев на свой редактор кода.
Точки останова
Точки останова позволяют указывать в коде точки, в которых вы хотите приостановить его выполнение. В вашем внешнем редакторе кода вы можете установить точку останова на строке кода, где вы хотите остановить отладчик. Пока редактор кода находится в точке останова, вы можете шаг за шагом просматривать содержимое переменных.
Если вы присоединили редактор кода к редактору Unity (см. раздел Присоединение редактора кода к редактору Unity), редактор Unity перестанет отвечать, пока вы не выберете вариант продолжения. в редакторе кода или выйдите из режима отладки.
Чтобы узнать, как установить точки останова в Visual Studio, см. раздел Установка точек останова в Visual Studio.
Отладка в редакторе Unity
Вы можете отлаживать код C#, поскольку он выполняется в редакторе Unity, когда редактор Unity находится в режиме воспроизведения.
Для отладки в редакторе необходимо установить для режима оптимизации кода редактора значение Режим отладки, после чего вы сможете подключить редактор кода с функцией отладки.
Чтобы изменить режим оптимизации кода, нажмите кнопку "Отладка" в правом нижнем углу строки состояния редактора Unity.
Настройка оптимизации кода Unity имеет два режима:
- Режим отладки, который можно использовать для подключения внешнего программного обеспечения отладчика, но снижает производительность C# при запуске проекта в режиме воспроизведения в редакторе.
- Release Mode, который обеспечивает более высокую производительность C# при запуске проекта в режиме воспроизведения в редакторе, но вы не можете подключать внешние отладчики.
При нажатии кнопки "Отладка" в строке состояния открывается небольшое всплывающее окно с кнопкой, которую можно использовать для переключения режимов. В окне также отображается информация о текущем режиме и описание того, что происходит при переключении режимов.
Чтобы изменить режим запуска редактора Unity, перейдите в раздел Редактировать (macOS: Unity) > Настройки > Общие. > Оптимизация кода при запуске.
Для управления этими настройками с помощью скрипта используйте следующий API:
Вы также можете переопределить режим, в котором запускается редактор, или отключить сокет прослушивания отладчика. Для этого используйте следующие аргументы командной строки при запуске редактора:
-
-releaseCodeOptimization
. Запускает редактор в режиме оптимизации кода Release. -
-debugCodeOptimization
. Запускает редактор в режиме оптимизации кода Отладка. -
-disableManagedDebugger
. Запускает редактор с отключенным сокетом прослушивания отладчика.
Присоедините свой редактор кода к редактору Unity
Способ присоединения вашего редактора кода к редактору Unity зависит от того, какой редактор кода вы используете, и часто отличается от обычного процесса отладки вашего редактора кода. Некоторые редакторы кода позволяют выбрать экземпляр Unity для отладки. Инструкции для вашего редактора кода см. во внешней документации по редактору кода. Чтобы узнать, как это можно сделать в Visual Studio, см. раздел Подключение Visual Studio к редактору Unity.
Когда вы подключили редактор кода к редактору Unity и готовы начать отладку, вернитесь в редактор Unity и войдите в режим воспроизведения.
Отладка в Unity Player
Чтобы скомпилировать проигрыватель Unity для отладки:
- Выберите Файл > Настройки сборки.
- Включить сборку для разработкиСборка для разработки включает символы отладки и включает профилировщик. Подробнее
См. в Словарь и Отладка скриптов перед сборкой проигрывателя. Вы также можете включить параметр Ждать управляемого отладчика, чтобы заставить проигрыватель ожидать подключения отладчика, прежде чем проигрыватель выполнит какой-либо код сценария. - Выберите Сборка и запуск.
Прикрепите редактор кода к проигрывателю Unity
Чтобы подключить редактор кода к проигрывателю Unity, в редакторе кода выберите IP-адрес (или имя компьютера) и порт проигрывателя. Пример того, где это можно найти в Visual Studio, см. в разделе Подключение Visual Studio к редактору Unity.
Примечание. Ваш редактор кода покажет все экземпляры Unity, доступные для отладки. Убедитесь, что вы подключили редактор кода к правильному экземпляру проигрывателя Unity, а не к редактору Unity, если оба запущены.
Подключив отладчик, вы можете начать отладку в обычном режиме. Инструкции по подключению проигрывателя Unity Player к конкретному редактору кода см. во внешней документации по редактору кода. Пример того, как подключить проигрыватель Unity Player, работающий на мобильном устройстве, к Visual Studio, см. в разделе Отладка устройств Android и iOS с помощью Visual Studio.
Установка точек останова в Visual Studio
Чтобы установить точку останова в Visual Studio, щелкните столбец слева от кода в строке, в которой вы хотите остановить отладчик. Рядом с номером строки появится красный кружок, и строка будет выделена.
Подключите Visual Studio к редактору Unity
Чтобы прикрепить редактор Unity к скрипту Visual Studio, откройте Visual Studio, перейдите в раздел Отладка > Присоединить отладчик Unity и выберите нужный экземпляр редактора Unity. для отладки.
В следующем примере показан один экземпляр Unity, работающий в редакторе, и один экземпляр Unity, работающий как проигрыватель Android
Отладка устройств Android и iOS с помощью Visual Studio
Андроид
Для отладки проигрывателя Unity, работающего на устройстве Android, подключитесь к устройству с помощью USB или TCP. Например, чтобы подключиться к устройству Android в Visual Studio, выберите параметр Отладка > Подключить отладчик Unity. Появится список устройств, на которых запущен экземпляр Player.
В этом примере устройство Android подключено через USB и Wi-Fi к той же сети, что и рабочая станция, на которой запущены редактор Unity и Visual Studio.
Android на Chrome OS
Unity не может автоматически обнаруживать устройства Chrome OS. Чтобы инициировать подключение, подключитесь к устройству через Android Debug Bridge (adb). Дополнительные сведения об использовании adbAndroid Debug Bridge (ADB) см. Вы можете использовать ADB для развертывания пакета Android (APK) вручную после сборки. Подробнее
См. в Словарь, см. Руководство пользователя Android Studio.
iOS
Для отладки проигрывателя Unity, работающего на устройстве iOS, подключитесь к устройству с помощью TCP. Например, чтобы подключиться к устройству iOS в Visual Studio для Mac, выберите Отладка > Подключить отладчик Unity. Появится список устройств, на которых запущен экземпляр Player.
Убедитесь, что на устройстве есть только один активный сетевой интерфейс (рекомендуется Wi-Fi, отключите сотовые данные) и что между IDE и устройством нет брандмауэра, блокирующего порт TCP (номер порта 56000 на снимке экрана выше).
Важно: iOSмобильная операционная система Apple. Подробнее
См. в Словарь не поддерживает отладку через USB.
Устранение неполадок в отладчике
Большинство проблем с отладчиком возникает из-за того, что редактор кода не может найти редактор Unity или проигрыватель Unity. Это означает, что редактор Unity или проигрыватель не могут правильно подключить отладчик. Поскольку отладчик использует TCP-соединение с редактором или проигрывателем, проблемы с подключением часто возникают из-за сети. Ниже приведены несколько шагов, которые можно предпринять для устранения основных проблем с подключением.
Убедитесь, что вы подключили отладчик к правильному экземпляру Unity
Вы можете подключить свой редактор кода к любому экземпляру редактора Unity или проигрывателя Unity в локальной сети, в котором включена отладка. При подключении отладчика убедитесь, что вы подключаете его к правильному экземпляру Unity. Если вы знаете IP-адрес или имя устройства, на котором запущен проигрыватель Unity, это поможет найти нужный экземпляр.
Проверьте сетевое подключение к экземпляру Unity
Редактор кода использует тот же механизм для поиска экземпляра Unity для отладки, что и окно Unity Profiler, помогающее вам оптимизировать свою игру. Он показывает, сколько времени вы тратите на различные области вашей игры. Например, он может сообщать о проценте времени, затраченном на рендеринг, анимацию или игровую логику. Дополнительная информация
См. в Словарь. Если редактор кода не может найти ожидаемый экземпляр Unity, попробуйте подключить к этому экземпляру Unity Profiler. Если Unity Profiler также не может найти экземпляр Unity, возможно, на компьютере, на котором запущен редактор кода или экземпляр Unity, установлен брандмауэр. Если установлен брандмауэр, см. раздел Проверьте настройки брандмауэра.
Убедитесь, что на устройстве есть только один активный сетевой интерфейс
Многие устройства имеют несколько сетевых интерфейсов. Например, мобильный телефон может иметь как активное сотовое соединение, так и активное соединение Wi-Fi. Чтобы правильно подключить отладчик к экземпляру Unity с помощью TCP, IDE необходимо установить сетевое подключение к правильному интерфейсу на устройстве. Например, если вы планируете выполнять отладку через Wi-Fi, убедитесь, что вы перевели устройство в режим полета, чтобы отключить все другие интерфейсы, а затем включите Wi-Fi.
Вы можете определить, какой IP-адрес Unity Player указывает IDE использовать, просмотрев журнал проигрывателяфайл .log созданный автономным проигрывателем, который содержит запись событий, таких как время выполнения скрипта, версия компилятора и время AssetImport. Файлы журнала могут помочь в диагностике проблем. Подробнее
См. в Словарь. Найдите в журнале такую часть:
Многоадресная рассылка "[IP] 10.0.1.152 [Порт] 55000 [Флаги] 3 [Guid] 2575380029 [EditorId] 4264788666 [Версия] 1048832 [Id] iPhonePlayer(Пример-iPhone) :56000 [Debug] 1 [PackageName] iPhonePlayer" на [225.0.0.222:54997]...
Это сообщение указывает, что IDE попытается использовать IP-адрес 10.0.1.152 и порт 56000 для подключения к устройству. Этот IP-адрес и порт должны быть доступны с компьютера, на котором запущена среда IDE.
Проверьте настройки брандмауэра
Экземпляр Unity взаимодействует с редактором кода с помощью соединения TCP. На большинстве платформ Unity это TCP-соединение происходит на произвольно выбранном порту. Обычно вам не нужно знать этот порт, так как редактор кода должен определить его автоматически. Если это не сработает, используйте инструмент сетевого анализа, чтобы определить, какие порты могут быть заблокированы либо на компьютере, на котором запущен редактор кода, либо на компьютере или устройстве, на котором запущен экземпляр Unity. Когда вы найдете порты, убедитесь, что ваш брандмауэр разрешает доступ к порту как на компьютере, на котором запущен редактор кода, так и на компьютере, на котором работает экземпляр Unity.
Убедитесь, что информация об управляемой отладке доступна
Если отладчик подключается к экземпляру Unity, но точки останова не загружаются, возможно, отладчик не сможет найти информацию об управляемой отладке для кода. Информация об отладке управляемого кода хранится в файлах с именами .pdb рядом с управляемой сборкой (файл .dll) на диске.
Когда вы включаете правильные настройки и параметры сборки (см. Настройка редактора кода), Unity автоматически генерирует эту отладочную информацию. Однако Unity не может генерировать отладочную информацию для управляемых плагинов в вашем проекте. Вы можете отлаживать код из управляемых подключаемых модулей только в том случае, если связанные файлы .pdb находятся рядом с управляемыми подключаемыми модулями в проекте Unity на диске.
Предотвратить блокировку устройства
Отключите любую блокировку экрана на устройстве, которое вы используете для отладки приложения. Блокировка экрана приводит к отключению отладчика и препятствует его повторному подключению. Не блокируйте экран во время отладки управляемого кода. Если экран заблокируется, перезапустите приложение на устройстве, чтобы отладчик снова смог подключиться.
Внешняя документация редактора кода
- Visual Studio — Использование инструментов Visual Studio для Unity (Windows)
- Visual Studio для Mac – Использование инструментов Visual Studio для Unity (macOS)
- Jetbrains Rider — Отладка приложений Unity