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

Где скачать скрипты для юнити

  • автор:

Создание и Использование Скриптов

Поведение игровых объектов контролируется с помощью компонентов (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?

Человек с телефоном, на котором виден главный экран Among Us

Развертывайте высокопроизводительный код C# на более чем 20 платформах

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

  • Платформа Unity
  • Unity для мультиплатформенных проектов
  • Система ввода Unity

Женщина пишет код на компьютере

Ускоряйте работу, используя удобную для себя среду IDE

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

  • Поддержка IDE в Unity
  • Visual Studio для Unity

Персонаж фентези-игры в редакторе Unity

Достигайте большего, используя редактор Unity

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

  • Unity для дизайнеров и художников
  • Odin Inspector Enterprise

Улучшайте качество кода

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

  • Профайлеры Unity
  • Backtrace для Unity
  • Cloud Content Delivery

Программирование в Unity

  • Программирование игр с помощью C#
  • Создание масштабируемых систем
  • Системы контроля версий
  • Настройка рабочих процессов в редакторе
  • Разработка игр для разных платформ
  • Оптимизируйте производительность

Строки кода на языке C#

Программирование игр с помощью C#

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

Сцена из Subnautica

Создание масштабируемых систем

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

Сцена из Volcano High

Системы контроля версий в Unity

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

Промоарт Jurassic World Alive

Настройка рабочих процессов в редакторе

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

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

Персонажи-воины, представляющие разные игровые устройства и консоли

Разработка игр для разных платформ

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

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

Скриншот Unity Profiler

Оптимизируйте производительность и качество

Вы создаете отличные игры, а 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 для дополнительной информации.

Демофильм Unity Megacity создан на основе DOTS

Преимущества информационно-ориентированного подхода с 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».

Демофильм Unity Megacity создан на основе DOTS

Используйте все возможности современного оборудования

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

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

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

Unity Profiler для оптимизации производительности

Отладка в 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.

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

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

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

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