Почему не открывается скрипт в юнити
Перейти к содержимому

Почему не открывается скрипт в юнити

  • автор:

Использование инструментов Visual Studio для Unity

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

Открытие скриптов Unity в Visual Studio

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

Кроме того, можно открыть Visual Studio без скрипта в редакторе исходного кода, выбрав меню «Ресурсы > открыть проект C#» в Unity.

Screenshot of the Open C# project in Visual Studio.

Screenshot of the Open C# project in Visual Studio for Mac.

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

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

  • В Visual Studio выделите API Unity, с которым хотите ознакомиться (или наведите на него курсор), а затем нажмите клавиши CTRL+ALT+M, CTRL+H.
  • Вы также можете использовать > меню справки по API Unity вместо привязки ключей.

Screenshot of the Unity API Reference menu in Visual Studio.

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

Screenshot of the Unity API Reference menu in Visual Studio for Mac.

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

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

  1. Поместите курсор на новую строку внутри тела класса, производного от MonoBehaviour .
  2. Начните вводить имя сообщения Unity, например OnTriggerEnter .
  3. После ввода букв «ontri» отображается список предложений IntelliSense.

Screenshot of using IntelliSense in Visual Studio.

  1. Выбранный элемент в списке можно изменить тремя способами:
    • с помощью клавиш со стрелками ВВЕРХ и ВНИЗ;
    • щелкая нужный элемент;
    • продолжив ввод имени нужного элемента.
  2. IntelliSense может вставить выбранное сообщение Unity, включая все необходимые параметры:
    • при нажатии клавиши TAB;
    • при нажатии клавиши ВВОД;
    • при двойном щелчке выбранного элемента.

Screenshot of the Insert Unity message from IntelliSense in Visual Studio.

Мастер создания скриптов Unity MonoBehavior

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

Создание определений пустых методов MonoBehavior с помощью мастера MonoBehavior.

  1. В Visual Studio поместите курсор туда, где необходимо вставить методы, а затем нажмите клавиши CTRL+SHIFT+M для запуска мастера MonoBehavior. В Visual Studio для Mac нажмите клавиши CMD+SHIFT+M.
  2. В окне Создание методов скрипта установите флажок рядом с именем каждого метода, который нужно добавить.
  3. Чтобы выбрать необходимую версию, используйте раскрывающийся список Версия платформы.
  4. Методы по умолчанию вставляются в позицию курсора. В качестве альтернативы можно вставить их после любого метода, который уже реализован в классе. Для этого измените значение раскрывающегося списка точка вставки на нужное расположение.
  5. Если вы хотите, чтобы мастер создавал комментарии для выбранных методов, установите флажок Создать комментарии к методу. Эти комментарии позволяют лучше понять, когда вызывается метод и каковы его общие функции.
  6. Нажмите кнопку ОК, чтобы выйти из мастера и вставить методы в код.

Screenshot of the monobehavior wizard dialog in Visual Studio.

Screenshot of the monobehavior wizard dialog in Visual Studio for Mac.

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

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

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

Screenshot of the Unity Project Explorer window.

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

Отладка Unity

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

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

Запуск отладки
  1. Visual Studio можно подключить к Unity, нажав кнопку Воспроизвести, отмеченную меткой Подключить к Unity, или использовав клавишу F5.

Screenshot of the Attach to Unity button in Visual Studio.

  1. Подключите Visual Studio к Unity, нажав кнопку Воспроизвести, клавиши COMMAND+ВВОД или клавишу F5.

Screenshot of the Play button in Visual Studio for Mac.

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

Screenshot of the Play button in Unity on Windows.

Screenshot of the Play button in Unity on macOS.

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

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

Screenshot of the Stop button in Visual Studio.

Нажмите кнопку Остановить в Visual Studio для Mac или клавиши SHIFT+COMMAND+ВВОД.

Screenshot of the Stop button in Visual Studio for Mac.

Дополнительные сведения об отладке в Visual Studio см. в документации по отладчику Visual Studio.

Подключение к Unity и воспроизведение

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

Screenshot of the Attach and play button in Visual Studio.

  1. Щелкните небольшую стрелку вниз рядом с кнопкой Подключить к Unity.
  2. В раскрывшемся меню выберите Подключить к Unity и воспроизвести.

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

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

Screenshot of the Attach to Unity and Play button in Visual Studio for Mac.

Если вы начали отладку с помощью конфигурации Присоединения к Unity и Play , кнопка «Остановить » также остановит редактор Unity.

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

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

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

Screenshot of the Unity build settings for debugging.

  1. В Unity откройте Параметры сборки, выбрав Параметры сборки файлов>.
  2. В окне параметров сборки установите флажки Сборка разработки и Отладка скриптов.
Выбор экземпляр Unity для присоединения отладчика
  • В Visual Studio в главном меню выберите отладочный отладчик >Unity. Screenshot of the Attach Unity Debugging Window in Visual Studio.В диалоговом окне Выбор экземпляра Unity отображаются сведения о каждом экземпляре Unity, к которому можно подключиться. Screenshot of the Choose an instance of Unity to connect to window in Visual Studio.Проект Имя проекта Unity, который выполняется в этом экземпляре Unity. Компьютер Имя компьютера или устройства, на котором выполняется этот экземпляр Unity. Редактор типов , если этот экземпляр Unity работает в редакторе Unity; Проигрыватель, если этот экземпляр Unity является автономным игроком. Порт Номер порта UDP-сокета, через который данный экземпляр Unity обменивается данными.

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

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

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

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

Screenshot of the Use saved debug targets setting.

Visual Studio будет отображать сохраненные целевые объекты отладки в качестве параметра в кнопке «Присоединить к Unity».

Screenshot of the Saved debug target setting.

  • В 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

Screenshot of the Add ></p>
<ol>
<li>Добавьте существующий проект библиотеки DLL в решение Visual Studio, которое создается набором средств Visual Studio для Unity. В ряде случаев вы можете создать новый проект с управляемой библиотекой DLL, который будет содержать компоненты кода проекта Unity. В этом сценарии в решение Visual Studio можно добавить новый проект с управляемой библиотекой DLL. Existing Item menu.» /> В любом случае набор средств Visual Studio для Unity сохраняет ссылку на проект, даже если он должен повторно создать файлы проекта и решения, поэтому эти действия нужно будет выполнить только один раз.</li>
<li>Создайте ссылку на нужный профиль платформы Unity в проекте DLL. В Visual Studio в свойствах проекта DLL для свойства <strong>Целевая платформа</strong> укажите версию платформы Unity, которую вы используете. Это библиотека базового класса Unity, соответствующая уровню совместимости API, на который ориентирован ваш проект, например библиотека базовых классов Unity full, micro или web. Благодаря этому ваша библиотека DLL не будет вызывать методы платформы, существующие на других платформах или уровнях совместимости, но которые могут отсутствовать в версии платформы Unity, которую вы используете.</li>
</ol>
<p>Указанные ниже действия требуется выполнять, только если вы используете устаревшую среду выполнения Unity. В новой среде выполнения Unity такие выделенные профили версии 3.5 использовать не нужно. Выберите профиль .NET 4.x, совместимый с вашей версией Unity.</p>
<p><img decoding=

  1. Скопируйте библиотеку DLL в папку Asset (ресурсы) своего проекта Unity. В Unity ресурсы представляют собой файлы, которые упаковываются и развертываются вместе с вашим приложением Unity, чтобы их можно было загружать во время выполнения. Так как библиотеки DLL связываются во время выполнения, их необходимо развертывать как ресурсы. Для развертывания в виде ресурса редактору Unity требуется, чтобы библиотеки DLL были помещены в папку Assets вашего проекта Unity. Предусмотрены два способа выполнения этой задачи.
    • Измените параметры сборки проекта DLL, чтобы добавить выполняемую после сборки задачу, которая скопирует выходные файлы DLL и PDB из выходной папки в папку Активы проекта 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. Если будет применяться устаревшая среда выполнения, воспользуйтесь значением «Полный».

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

Для быстрого доступа средств 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

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

Обратная связь

Были ли сведения на этой странице полезными?

Решение проблем в редакторе

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

Версии

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

Лицензии дополнений подходят только для версий Unity c такой же основной версией, например 3.х и 4.х. Если вы обновите Unity внутри основной версии, например с 4.0 до 4.1, то дополнения останутся.

Активация

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

  1. Отключите ваш компьютер от сети, иначе у вы можете получить ошибку “tx_id_invalid”.
  2. Выберите пункт Manual Activation.
  3. Нажмите на Save License Request.
  4. Выберите доступную папку для сохранения, например папку Downloads.
  5. Заново подключитесь к сети и откройте https://license.unity3d.com/
  6. В поле файла нажмите Browse и выберите сохранённый licence request file.
  7. Выберите необходимый тип лицензии для Unity и заполните запрашиваемую информацию.
  8. Нажмите Download License и сохраните файл.
  9. Вернитесь в Unity и выберите Manual Activation если придётся.
  10. Кликните на Read License и выберите загруженный файл лицензии.

Если у вас всё ещё есть проблемы с регистрацией или входом в ваш аккаунт пользователя, пожалуйста, свяжитесь с нами по адресу support@unity3d.com.

Не удаётся запустить

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

Если вы получаете ошибки, связанные с записью на локальный диск, то проверьте разрешения вашей учётной записи. При использовании MacOS, учтите, что “root user” не рекомендуется и Unity ещё не прошёл тестирование в этом режиме. Unity всегда должен обладать разрешениями на запись файлов в своих папках, но если вы устанавливаете разрешения вручную, то проверьте эти папки:

  • Папку с установленным Unity
  • %AllUsersProfile%\Unity (typically C:\ProgramData\Unity)
  • C:\Documents and Settings\\Local Settings\Application Data\Unity
  • C:\Users\\AppData\Local\Unity
  • Содержимое пакета Unity.app
  • /Library/Application Support/Unity
  • ~/Library/Logs/Unity

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

Шрифты

Повреждённые шрифты могут вызвать падение Unity. Вы можете найти повреждённые файлы при помощи следующих шагов:

  1. Откройте каталог со шрифтами на вашем компьютере, расположенный в папке “Windows”.
  2. Выберите пункт “Details” в меню “View”.
  3. Проверьте, нет ли шрифтов с параметром “Size” равным “0”, что указывало бы на проблемный файл.
  4. Удалите повреждённые файлы и переустановите их.
  1. Запустите приложение Font Book.
  2. Выберите все шрифты.
  3. Откройте меню “File” и выберите пункт “Valiadte Fonts”. Проблемные шрифты будут помечены как нерабочие.
  4. Удалите повреждённые файлы и переустановите их.
  5. Ресурсы системы могут быть ограничены, например, при работе в виртуальной машине. Используйте Диспетчер задач, чтобы найти процессы потребляющие много памяти.

Испорченный проект или установка Unity

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

В случае повреждения копии Unity, вам может понадобится переустановить Unity — смотрите инструкции ниже.

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

Производительность и падения

Если редактор работает медленно или падает, в частности на стадии сборки, это может происходить из-за того, что все доступные системные ресурсы уже используются. Закройте все другие приложения при сборке проекта. Почистите систему используя специализированные утилиты и сверьтесь с диспетчером задач (Windows) или Activity Monitor (MacOS), чтобы проверить, нет ли в системе процессов, использующих очень много ресурсов, например, памяти. Иногда антивирусы могут замедлять или даже блокировать файловую систему в процессе сканирования.

Утрата проекта

Есть много различных факторов, способных уничтожить проект. Вам следует постоянно делать резервные копии ваших проектов для предотвращения несчастных случаев. В MacOS, активируйте TimeMachine используя внешний жёсткий диск, используемый только для этой цели. После утери вы можете попробовать использовать какую-нибудь утилиту для восстановления файлов, но иногда файлы оказываются невосстановимыми.

Переустановка

Следуйте этим шагам для переустановки редактора:

  1. Удалите Unity. Если вы используете MacOS, перетащите приложение Unity в корзину.
  2. Удалите следующие файлы, если они есть:
    • Windows:
      • %AllUsersProfile%\Unity\ (typically C:\ProgramData\Unity)
    • MacOS:
      • /Library/Application Support/Unity/
  3. Перезагрузите компьютер.
  4. Скачайте последнюю версию с нашего сайта, т.к. возможно ваш установщик может быть повреждён: http://unity3d.com/unity/download/archive
  5. Переустановите Unity.

Устранение неполадок и известные проблемы (набор средств 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 особенно WaitForMultipleObjectsEx WaitForSingleObjectEx , SignalObjectAndWait MsgWaitForMultipleObjectsEx или функции, чтобы правильно сотрудничать с 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 зависла.

См. также

Почему не работает скрипт Unity 3D?

Пишет : Assets\Scripts\moveCam.cs(31,13): error CS0619: ‘Component.rigidbody’ is obsolete: ‘Property rigidbody has been deprecated. Use GetComponent() instead. (UnityUpgradable)’
Я понимаю, что компонент устарел, но не понимаю как его изменить, чтобы юнити всё устраивало.

Скрипт (выделил проблемное место комментарием) :

using UnityEngine; using System.Collections; public class CamMove : MonoBehaviour < public Transform target; //Объект за которым летаем(Наш персонаж) public float distance = 3.0f; //На каком ратоянии от него public float xSpeed = 125.0f; //Чуствительность по Х public float ySpeed = 50.0f; //Y Чуствительность public float targetHeight = 2.0f; //Высота относительно объекта //Минимальный и максимальный угол поворота Y инче камеру разверет, Дальше у нас будет простая функция для инвертации их в обратные числа public float yMinLimit = -40; public float yMaxLimit = 80; //Максимальное удаление и приближение камеры к персонажу, искорость. public float maxDistance = 10.0f; public float minDistance = 0.5f; public float zoomRote = 90.0f; private float x = 0.0f; //Угол поворота по Y? private float y = 0.0f; //Уго поворота по X? [AddComponentMenu("Scripts/Mouse Orbit")] //Добавляем в меню public void Start() < //переворачивам углы Vector3 angles = transform.eulerAngles; x = angles.y; y = angles.x; // Проблема здесь, в этом условии. if(rigidbody) rigidbody.freezeRotation = true; //Если камера столкнется с физ.объектомона остановиться >public void LateUpdate() < if (target) > > //Меняем значения углов public static float ClampAngle (float angle, float min, float max) < if(angle < -360) angle += 360; if(angle >360) angle -= 360; return Mathf.Clamp (angle, min, max); > >
  • Вопрос задан более трёх лет назад
  • 405 просмотров

1 комментарий

Простой 1 комментарий

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

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