Создание и Использование Скриптов
Поведение игровых объектов контролируется с помощью компонентов (Components), которые присоединяются к ним. Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре вы обнаружите, что вам нужно выйти за пределы их возможностей, чтобы реализовать ваши собственные особенности геймплея. Unity позволяет вам создавать свои компоненты, используя скрипты. Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на ввод пользователя каким вам угодно способом.
Unity supports the C# programming language natively. C# (pronounced C-sharp) is an industry-standard language similar to Java or C++.
In addition to this, many other .NET languages can be used with Unity if they can compile a compatible DLL — see here for further details.
Изучение искусства программирования и использования этих языкам выходит за рамки данного введения. Однако есть множество книг, обучающих материалов и ресурсов для изучения программирования в среде Unity. Посетите Обучающий раздел на нашем сайте для получения подробной информации.
Создание скриптов
Unlike most other assets, scripts are usually created within Unity directly. You can create a new script from the Create menu at the top left of the Project panel or by selecting Assets > Create > C# Script from the main menu.
Новый скрипт будет создан в папке, которую вы выбрали в панели Project. Имя нового скрипта будет выделено, предлагая вам ввести новое имя.
![]()
Лучше ввести новое имя скрипта сразу после создания чем изменять его потом. Имя, которое вы введете будет использовано, чтобы создать начальный текст в скрипте, как описано ниже.
Структура файла скрипта
When you double-click a script Asset in Unity, it will be opened in a text editor. By default, Unity will use Visual Studio, but you can select any editor you like from the External Tools panel in Unity’s preferences (go to Unity > Preferences).
Содержимое файла будет выглядеть примерно так:
using UnityEngine; using System.Collections; public class MainPlayer : MonoBehaviour < // Use this for initialization void Start () < >// Update is called once per frame void Update () < >>
Скрипт взаимодействует с внутренними механизмами Unity за счет создания класса, наследованного от встроенного класса, называемого MonoBehaviour. Вы можете думать о классе как о своего рода плане для создания нового типа компонента, который может быть прикреплен к игровому объекту. Каждый раз, когда вы присоединяете скриптовый компонент к игровому объекту, создается новый экземпляр объекта, определенный планом. Имя класса берется из имени, которое вы указали при создании файла. Имя класса и имя файла должны быть одинаковыми, для того, чтобы скриптовый компонент мог быть присоединен к игровому объекту.
Основные вещи, достойные внимания, это две функции, определенные внутри класса. Функция Update — это место для размещения кода, который будет обрабатывать обновление кадра для игрового объекта. Это может быть движение, срабатывание действий и ответная реакция на ввод пользователя, в основном всё, что должно быть обработано с течением времени во игровом процессе. Чтобы позволить функции Update выполнять свою работу, часто бывает полезно инициализировать переменные, считать свойства и осуществить связь с другими игровыми объектами до того, как будут совершены какие-либо действия. Функция Start будет вызвана Unity до начала игрового процесса (т.е. до первого вызова функции Update), и это идеальное место для выполнения инициализации.
Заметка для опытных программистов: вы можете быть удивлены, что инициализация объекта выполняется не в функции-конструкторе. Это потому, что создание объектов обрабатывается редактором и происходит не в начале игрового процесса, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для скриптового компонента, он будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.
Управление игровым объектом
Как было сказано ранее, скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component, которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector:-

После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это добавив следующий код в функцию Start:-
// Use this for initialization void Start ()
Debug.Log is a simple command that just prints a message to Unity’s console output. If you press Play now, you should see the message at the bottom of the main Unity editor window and in the Console window (menu: Window > General > Console).
- 2018–03–19 Page amended
- MonoDevelop replaced by Visual Studio from 2018.1
Программирование в Unity
Инструменты Unity помогают программистам любого уровня создавать увлекательные и высокопроизводительные интерактивные приложения для более чем 20 платформ.
10 % программистов по всему миру используют Unity
Более 50 % игр созданы на базе Unity
Профессия разработчика Unity занимает седьмое место по росту востребованности
В чем преимущества Unity?

Развертывайте высокопроизводительный код C# на более чем 20 платформах
В Unity используется среда .NET и язык программирования C# — самый популярный в разработке игр. Движок компилирует код C# для каждого целевого устройства, поэтому вы можете развертывать приложения для ПК, мобильных устройств, консолей, а также платформ AR и VR.
- Платформа Unity
- Unity для мультиплатформенных проектов
- Система ввода Unity

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

Достигайте большего, используя редактор Unity
Помогайте дизайнерам и художникам творить в Unity. Ускорьте выполнение рутинных операций (таких как изменение значений или интеграция ассетов) и расширьте редактор в соответствии со своими потребностями.
- Unity для дизайнеров и художников
- Odin Inspector Enterprise

Улучшайте качество кода
Выявляйте проблемы и оптимизируйте код, используя профайлеры и инструменты Unity для тестирования. Backtrace для Unity позволяет автоматически отслеживать ошибки и сбои на каждой платформе. С легкостью выпускайте обновления с помощью облачной системы доставки контента.
- Профайлеры Unity
- Backtrace для Unity
- Cloud Content Delivery
Программирование в Unity
- Программирование игр с помощью C#
- Создание масштабируемых систем
- Системы контроля версий
- Настройка рабочих процессов в редакторе
- Разработка игр для разных платформ
- Оптимизируйте производительность

Программирование игр с помощью C#
Вам больше не нужно создавать 3D-платформы реального времени для своего приложения — Unity сделает это за вас. Пропишите скрипты интерактивного игрового процесса, а затем проведите тестирование прямо в редакторе. В Unity используется язык C#, который автоматически распределяет и освобождает память, собирает мусор для профилактики утечек и не только.

Создание масштабируемых систем
«Система Addressable Asset System от Unity очень нам помогла. Она оперативно устранила проблемы с памятью. Без этого мы не смогли бы так быстро создать игру для платформы Switch», — Макс Макгуайр, технический директор, Unknown Worlds. Платформа Unity предлагает множество инструментов, которые помогают управлять кодом и ассетами проектов для достижения максимальной производительности. Например, пакет Addressables снижает ресурсоемкость системы управления ассетами и упрощает создание и развертывание контента. Объекты ScriptableObjects идеально подходят для проектов, в которых нужно управлять большими объемами данных, меняющихся в ходе разработки.

Системы контроля версий в Unity
«Plastic открыла ранее недоступный нам уровень детального контроля веток. Она легко поддается парсингу, удобна в работе с проектами и не нарушает их структуру», — Салим Даббуа, директор студии, KO_OP. Plastic SCM — это лучшая система контроля версий для разработчиков Unity, которая великолепно подходит для обработки крупных двоичных файлов и создания быстрых рабочих процессов. Кроме того, система имеет упрощенный интерфейс для участников команды, которые не занимаются программированием. Редактор также можно интегрировать с Perforce или использовать любое другое решение, например Git.

Настройка рабочих процессов в редакторе
«Благодаря Unity наши художники больше не так сильно зависят от программистов. Когда мы использовали предыдущий движок, программистам приходилось проводить большую часть работ по интеграции визуальных элементов. Теперь же у художников появилось значительно больше возможностей. Я заметила, что просьб передвинуть два пикселя влево или сделать что-то в этом духе стало намного меньше», — Катрин Барбо, технический директор, Ludia.
Возможности Unity не ограничиваются управлением значениями и ассетами через код. Программист с легкостью может настроить интерфейс редактора так, чтобы художники и дизайнеры могли менять игровой процесс и создавать сцены с помощью движка. Теперь, если дизайнер хочет что-то изменить, он может просто убрать флажок, а не просить вас полностью переписать код.

Разработка игр для разных платформ
«Для Arena of Valor нам требовалась поддержка многочисленных конфигураций оборудования в различных странах, и Unity помог достигнуть ожидаемой нами стабильной производительности», — Мэллоу Ю, технический директор, Tencent Games.
Unity поддерживает тесные партнерские отношения со всеми основными платформами. Вы можете добиться максимальной производительности от каждого из более чем 20 доступных вариантов развертывания, не волнуясь о совместимости с новыми устройствами. Система ввода Unity позволяет настраивать элементы управления в одном интерфейсе, для всех платформ и устройств без дополнительных инструментов.

Оптимизируйте производительность и качество
Вы создаете отличные игры, а Unity делает их работу быстрой и стабильной. Редактор Unity содержит набор профайлеров и инструментов для оптимизации. Они помогут максимально эффективно использовать ресурсы на вашей целевой платформе.
Unity Profiler предоставляет данные о производительности приложения, а Memory Profiler позволяет снизить потребление памяти. Unity Test Framework позволяет создавать автоматические тесты, чтобы убедиться, что код работает должным образом. Backtrace избавляет от рутинной работы по обработке аварийных завершений и исключений кроссплатформенных приложений, позволяя сосредоточиться на выпуске игры.
Программирование в Unity для опытных программистов
В Unity скрипты можно использовать для разработки практически любого элемента игры или интерактивного контента с графикой реального времени. Unity поддерживает скрипты на C#, созданные в соответствии с одним из двух основных подходов: традиционным и широко использующимся объектно-ориентированным подходом и информационно-ориентированным подходом, который теперь тоже поддерживается в Unity в отдельных случаях благодаря нашему высокопроизводительному многопоточному стеку информационно-ориентированных технологий (DOTS).
На этой странице
- Если у вас есть опыт программирования на C++
- Объекты GameObject и компоненты
- Программирование компонентов в Unity
- Преимущества информационно-ориентированного подхода
- Современное оборудование
- Отладка в Unity
- Системы программирования в Unity
- Настройка редактора Unity
Знакомитесь с Unity, имея знания C++?
Unity поддерживает C#, стандартный в отрасли язык программирования, в некоторой степени похожий на Java или C++.
По сравнению с C++, C# легче в изучении. Кроме того, он относится к категории языков «с управлением памятью», то есть он автоматически распределяет память, устраняет утечки и так далее.
Как правило C# удобнее C++, если вам нужно в первую очередь разработать игру, а потом уже работать над различными сложными аспектами программирования.

Объекты GameObject и компоненты в Unity
Вся интерактивность и игровой процесс в Unity строятся на основе трех фундаментальных блоков: объекты GameObject, компоненты и переменные.
Любой объект в игре является GameObject, будь то персонажи, источники света, спецэффекты, декорации и все остальное.
Компоненты
Игровые объекты сами по себе не имеют никакого поведения. Для того, чтобы объект начал работать, игровому объекту нужны различные атрибуты, добавляемые с помощью компонентов.
Компоненты (Component) определяют поведение игровых объектов, к которым они прикреплены, и управляют ими. Простой пример — создание источника света, включающее прикрепление компонента Light к GameObject (см. ниже). Таким же примером может быть добавление компонента Rigidbody к объекту, чтобы он мог падать.
Компоненты имеют ряд свойств или переменных, которые можно настроить в окне Inspector редактора Unity и/или с помощью скрипта. В примере выше к свойствам источника света относятся дальность, цвет и интенсивность.
Программирование компонентов в Unity
В Unity есть множество самых разнообразных компонентов, но вы вскоре можете столкнуться с необходимостью создать собственный компонент для реализации своих алгоритмов. Это можно сделать с помощью скриптов, в которых описана ваша собственная игровая логика и поведение объектов, и которые затем прикрепляются к игровым объектам как компоненты. Каждый скрипт связывается с внутренними механизмами Unity путем реализации класса, производного от встроенного класса MonoBehaviour.
Компоненты на основе скриптов позволяют запускать игровые события, проверять объект на предмет столкновений, применять физические свойства, программировать реакцию на управление пользователя и многое другое. См. Unity Scripting API для дополнительной информации.

Преимущества информационно-ориентированного подхода с DOTS
Традиционная модель «игровой объект — компонент» хорошо работает и сегодня, поскольку она проста как для программистов, так и других пользователей, а также удобна для создания интуитивных интерфейсов. Добавите компонент Rigidbody к объекту GameObject — он начнет падать, добавите компонент Light — GameObject начнет излучать свет. Все остальное также подчиняется этой простой логике.
При этом система компонентов создана на основе объектно-ориентированной платформы, что создает сложности для разработчиков при работе с кэшем и памятью развивающегося оборудования.
Компоненты и игровые объекты относятся к «тяжелым объектам C++». Все объекты GameObject имеют имя. Их компоненты представляют собой оболочки для C# поверх компонентов на C++. Это упрощает работу с ними, но может влиять на производительность, если они будут храниться в памяти без явной структуры. Объект C# может находиться на любом участке памяти. Объект C++ также может находиться в любом участке памяти. Группировка и последовательное размещение объектов в памяти отсутствуют. При каждой загрузке в центральный процессор для обработки объект приходится собирать по частям из разных участков памяти. Это может сильно замедлить загрузку, а оптимизация потребует много усилий.
Для решения этих проблем мы начали перерабатывать базовые системы Unity на основе высокопроизводительного, многопоточного стека информационно-ориентированных технологий или DOTS (в настоящее время в статусе предварительной версии).
DOTS позволяет вашей игре эффективно использовать все возможности новейших многоядерных процессоров. Стек состоит из следующих компонентов:
- система задач C# для эффективного исполнения кода на многопоточных системах;
- Entity Component System (ECS) для разработки высокопроизводительного кода по умолчанию;
- компилятор Burst для компиляции скриптов в оптимизированный нативный код.
ECS — это новая система компонентов в составе DOTS; все традиционные объектно-ориентированные манипуляции над GameObject отражаются на экземпляре в новой системе. Название «Компонент» никак не изменилось. Важнейшее отличие — в структуре данных. Подробнее об этом можно узнать из статьи «О DOTS: Entity Component System».

Используйте все возможности современного оборудования
Помимо того, что это улучшенный подход к написанию кода игры с точки зрения дизайна, ECS позволяет вам использовать систему задач C# Unity и компилятор Burst и тем самым полностью использовать преимущества современного оборудования.
Многопоточные системы DOTS помогают создавать игры для самых разных устройств и разрабатывать богатые игровые миры с большим числом элементов и сложными симуляциями. Производительный код, в свою очередь, снижает тепловыделение и продлевает время автономной работы мобильных устройств. Переход от объектно-ориентированного к информационно-ориентированному подходу упрощает вам многократное использование кода, а другим позволяет легче понять и дополнить его при необходимости.
Некоторые из технологий DOTS все еще находятся в статусе предварительной версии, поэтому мы советуем разработчикам использовать стек для решения отдельных вопросов производительности проекта, не строить на базе DOTS весь проект. См. раздел «Дополнительные ресурсы» в конце этой страницы, где указаны ссылки на ключевые ресурсы DOTS.

Отладка в Unity
Настройка и отладка в Unity эффективна, потому что все переменные игрового процесса отображаются непосредственно в процессе игры, что позволяет менять их на лету без дополнительного программирования. Игру можно приостановить в любой момент или переходить от одного оператора к другому по очереди.
Вот несколько полезных ресурсов по оптимизации в Unity:
Наилучшие методики для общих случаев (включая подробные советы по оптимизации системы интерфейса Unity)
Использование инструментов Visual Studio для Unity
В этом разделе мы рассмотрим, как использовать возможности интеграции и повышения производительности набора средств Visual Studio для Unity, а также как использовать отладчик Visual Studio для разработки Unity.
Открытие скриптов Unity в Visual Studio
После установки Visual Studio в качестве внешнего редактора для Unity дважды щелкните скрипт из редактора Unity, автоматически запустит или переключится на Visual Studio и откройте выбранный скрипт.
Кроме того, можно открыть Visual Studio без скрипта в редакторе исходного кода, выбрав меню «Ресурсы > открыть проект C#» в Unity.


Доступ к документации 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;
- при нажатии клавиши ВВОД;
- при двойном щелчке выбранного элемента.

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


Обозреватель проектов 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
Запуск отладки
- Visual Studio можно подключить к Unity, нажав кнопку Воспроизвести, отмеченную меткой Подключить к Unity, или использовав клавишу F5.

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

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


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

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

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

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

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

- В Unity откройте Параметры сборки, выбрав Параметры сборки файлов>.
- В окне параметров сборки установите флажки Сборка разработки и Отладка скриптов.
Выбор экземпляр Unity для присоединения отладчика
- В Visual Studio в главном меню выберите отладочный отладчик >Unity.
В диалоговом окне Выбор экземпляра Unity отображаются сведения о каждом экземпляре Unity, к которому можно подключиться.
Проект Имя проекта Unity, который выполняется в этом экземпляре Unity. Компьютер Имя компьютера или устройства, на котором выполняется этот экземпляр Unity. Редактор типов , если этот экземпляр Unity работает в редакторе Unity; Проигрыватель, если этот экземпляр 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 в папку 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 |
Если вас не устраивает сочетание клавиш по умолчанию, его можно изменить. Сведения о том, как изменить его, см. в разделе «Настройка интегрированной среды разработки».