10 способов ускорить рабочие процессы программирования в Unity с помощью Visual Studio 2019

Visual Studio 2019 предлагает отладку мирового уровня, а также множество новых инструментов и возможностей настройки, чтобы вы могли настроить свою среду кодирования именно так, как вам нужно. Кроме того, в нем реализован ряд мощных функций для работы с C# в Unity, которые помогут вам писать и рефакторить код быстрее, чем раньше. В этой статье мы рассмотрим 10 советов по использованию некоторых из этих функций, которые могут ускорить и ваш рабочий процесс.
Наш евангелист Unity Артуро Нереу и Абдулла Хамед, руководитель программы Visual Studio Tools for Unity в Microsoft, недавно провели сессию Unite Now, на которой поделились советами и рекомендациями о том, как получить максимум от Visual Studio 2019 при разработке в Unity.
В этом посте представлен краткий обзор некоторых из этих советов. Мы также добавили ссылки непосредственно на эти разделы из доклада, а также на другие связанные материалы, если вы хотите копнуть глубже.
Использование Console.Log - это простой и быстрый способ отладки проекта с помощью консольного представления Unity. Однако Visual Studio предлагает более эффективный способ, который становится все более ценным по мере усложнения проекта. В Visual Studio просто нажмите кнопку Attach to Unity в меню Visual Studio. Это создаст связь между двумя приложениями, чтобы вы могли вставлять точки останова и перебирать код, находясь в режиме игры в Unity. Вы также можете нажать Attach to Unity and play, чтобы начать выполнение, не покидая IDE. Прелесть в том, что это позволяет вам проверять состояние потока кода, значения свойств и т.д. во время выполнения. Хотя это может показаться тривиальным, возможность приостановить выполнение в любой момент во время игры и просмотреть конкретное состояние игры и значения ваших свойств именно в этом кадре - очень мощный инструмент при отладке.
Еще одна удобная опция при работе с точками останова - возможность вставлять собственные условия с соответствующими действиями, например, условное выражение, которое должно быть оценено как true перед применением в потоке отладки.
В Visual Studio 2019 появились анализаторы Unity Analyzers. Анализатор обнаруживает шаблон кода и может предложить заменить его на более рекомендуемый. Unity Analyzers - это коллекция диагностик и исправлений кода, специфичных для Unity, с открытым исходным кодом и доступных на GitHub. Анализаторы могут дать вам лучшее понимание специфических для Unity диагностик или просто помочь вашему проекту, удалив общие диагностики C#, которые не применимы к проектам Unity. Примером может быть простой условный оператор, в котором нужно проверить, есть ли у объекта GameObject определенный тег, чтобы применить к нему определенное поведение.
if(collision.gameObject.tag == "enemy")
{
// Логика, применяемая к вражескому GO
}
Анализатор сможет проанализировать ваш код, обнаружит паттерн и предложит использовать вместо него более оптимизированный метод. В этом случае анализатор предложит метод CompareTag, который является более эффективным.
if(collision.gameObject.CompareTag("enemy"))
{
// Логика, применяемая к вражескому GO
}
Хотя приведенный выше пример представляет собой незначительную оптимизацию, не оказывающую существенного влияния на один скрипт, прикрепленный к одному GameObject, в крупномасштабном проекте с 1000 GameObject'ов, к которым прикреплен скрипт, все может быть иначе. Это сумма всех частей при оптимизации производительности, и анализаторы могут легко помочь вам определить и улучшить производительность просто за счет сокращения ненужных накладных расходов путем оптимизации синтаксиса кода.
Список анализаторов можно найти здесь, а если вы хотите узнать больше, посетите эту запись в блоге или перейдите непосредственно к этой части выступления Unite Now.
Частой проблемой при создании скриптов является необходимость возвращаться к коду позже и пересматривать его. Это может быть результатом внедрения фрагментов кода, которые в конечном итоге потребуют рефакторинга для повышения производительности, но служат текущим потребностям, поскольку вы f.x. тестируете игровые механики. В Visual Studio есть удобная функция для отслеживания этого, называемая Task List, которая позволяет отслеживать комментарии кода, использующие такие маркеры, как TODO и HACK, или даже пользовательские маркеры. Вы также можете управлять ярлыками, которые ведут вас прямо к заданному месту в коде. Чтобы создать задачу на потом, просто добавьте токен в свой код:
// TODO: Измените обнаружение столкновений, когда будут готовы новые коллайдеры
Окно Task List (Список задач), которое можно открыть из меню View (Вид ), дает вам обзор всех задач, которые вы пометили, и связывает вас с конкретными частями кода одним щелчком мыши.

По мере роста списка действий в вашем проекте вы можете даже настроить собственные пользовательские маркеры в списке задач и эффективно назначать приоритеты и организовывать процесс рефакторинга. Чтобы настроить маркеры списка задач, перейдите в меню Инструменты > Параметры.
Полный пример из сессии Unite Now смотрите здесь.
Фрагменты кода - это небольшие блоки многократно используемого кода, которые можно вставить в файл кода с помощью команды меню (контекстного меню), вызываемого правой кнопкой мыши, или комбинации горячих клавиш. Обычно они содержат часто используемые блоки кода, такие как try-finally или if-else, но вы также можете использовать их для вставки целых классов или методов. Одним словом, они предлагают вам удобный способ сэкономить кучу времени, создавая код за вас.
Чтобы окружить код фрагментом, например, пространством имен или регионом, нажмите CTRL + K + S. Это позволит вам применить фрагмент, как показано в видео ниже:
Пошаговое руководство по созданию собственных фрагментов кода можно найти в документации Microsoft(Visual Studio, Visual Studio for Mac).
При рефакторинге кода часто приходится переименовывать переменные в более описательные и точные имена. Изменение переменной в одном месте означает, что вам также придется исправить все ссылки на эту переменную. Однако Visual Studio предлагает простой способ сделать это за одну операцию. Просто выделите имя переменной, которую нужно переименовать, нажмите правую кнопку мыши (или воспользуйтесь сочетанием клавиш CTRL + R), а затем переименуйте переменную. Выберите предварительный просмотр изменений, чтобы просмотреть последствия изменений перед их применением.
Вы можете использовать тот же совет для изменения классов вашего скрипта, но помните, что вы должны соответствующим образом переименовать C#-файл, чтобы избежать ошибок компиляции. Узнайте больше о потоке переименования классов в этой части сессии Unite Now .
Комментирование или некомментирование блоков кода - еще один распространенный процесс работы при рефакторинге или отладке кода. Это может занять много времени, если делать это по одной строке за раз. Однако Visual Studio позволяет закомментировать целые блоки кода с помощью простой команды быстрого доступа: Ctrl+K+C и Ctrl+K+U для повторного разкомментирования. Если вы работаете на Mac, просто используйте CMD+K+C, чтобы убрать комментарии, и CMD+K+U, чтобы удалить их снова.
Возможность быстро закомментировать целые блоки может стать эффективным способом подавления определенной игровой логики в процессе тестирования.
Хотя Unity Collaborate позволяет легко сохранять, делиться и синхронизировать ваш проект с другими прямо из Unity с помощью удобного визуального интерфейса, некоторые команды и разработчики предпочитают использовать решения для контроля исходного кода, такие как GitHub. Работа с GitHub для контроля исходных текстов стала намного проще благодаря плагину Github for Unity. Расширение полностью открыто и позволяет просматривать историю проектов, экспериментировать в ветках, создавать коммиты из своих изменений и отправлять код на GitHub, не покидая Unity. Аутентификация GitHub встроена в Unity, включая 2FA, и одним нажатием кнопки вы можете быстро инициализировать репозиторий своей игры, не прибегая к инструкциям командной строки. Он позволяет создать специфический для Unity файл .gitignore, чтобы не настраивать его вручную. В Visual Studio 2019 также появился новый интерфейс, который еще больше упрощает работу с GitHub прямо в IDE.
Чтобы активировать новый интерфейс в Visual Studio: Перейдите в Инструменты > Параметры > Среда > Функции предварительного просмотра > Новый пользовательский опыт Git.
Вы также можете следовать видеоинструкциям из сессии Unite Now, в которых более подробно рассказывается о том, как начать работу.
Live Share позволяет вам поделиться своим экземпляром Visual Studio непосредственно с членами вашей команды, используя всего лишь ссылку, что позволяет им редактировать ваш код и сотрудничать над проектом в режиме реального времени. Вам не нужно клонировать репозиторий или настраивать окружение, чтобы сделать общий доступ. Вам обоим достаточно установить Visual Studio, а затем просто нажать кнопку, чтобы создать сеанс Live Share.

Для начала просто выберите Live Share, чтобы сгенерировать ссылку на те части вашего кода, которыми вы хотите поделиться со всеми, у кого установлена Visual Studio или Visual Studio Code. Между вами и вашими соавторами создается сеанс совместного доступа, позволяющий им видеть ваш код без необходимости устанавливать что-либо, кроме редактора. Он действует практически мгновенно.
Вы можете узнать больше о Live Share на нашей сессии Unite здесь, посетить страницу продукта Visual Studio или перейти непосредственно к руководству по быстрому запуску здесь.
Запомнить сигнатуры всех методов MonoBehaviour довольно сложно, и хотя документация Unity поможет вам в этом, Visual Studio предоставляет удобную функцию, которая позволяет искать сигнатуры прямо в IDE. Просто нажмите CTRL + Shift + M, найдите функцию, которую вы хотите реализовать, и отфильтруйте результаты поиска, чтобы найти метод. Установите флажок и нажмите Ok, чтобы вставить шаблонный код метода прямо в ваш код, готовый к использованию.
Некоторые из вышеперечисленных советов можно использовать с помощью удобных ярлыков, и в конце концов знание этих ярлыков может стать самой большой экономией времени. В завершение списка приведем краткое описание клавиатурных сокращений для этих советов и еще несколько в качестве бонуса.
Что такое Windows Mac Поиск по всему проекту на предмет чего-либо. Используйте CTRL+T CMD + . Реализация Unity Messages CTRL + Shift + M CMD + Shift + M Закомментируйте блоки кода CTRL + K / CTRL + C CMD + / Откомментируйте блоки кода CTRL + K / CTRL + U CMD + / Скопируйте из буфера обмена историю CTRL + Shift + V Просмотр списка задач CTRL + T По умолчанию привязки нет, но вы можете ее привязать. Вставьте окружающий фрагмент, например namespace CTRL + K + S: По умолчанию привязки к клавишам нет, но вы можете привязать ее. Переименование переменной с обновлением всех ссылок CTRL + R CMD +R Компиляция кода CTRL+SHIFT+B CMD + Shift + B
Visual Studio 2019 оснащена множеством функций, и в ней есть так много вариантов настройки, которые могут повысить производительность работы с Unity в зависимости от ваших конкретных рабочих процессов. Их слишком много, чтобы охватить их все здесь. Надеемся, что несколько советов, которыми мы здесь поделились, вдохновят вас и вы найдете этот формат полезным. Сообщите нам, если у вас есть советы, о которых мы не рассказали, и не стесняйтесь поделиться ими с сообществом в комментариях. Мы также будем рады узнать, хотите ли вы получить больше советов и рекомендаций по улучшению рабочих процессов в Unity, и если есть какие-то темы, которые вы хотели бы осветить в будущем блоге.
Мы постоянно работаем над улучшением рабочих процессов, и наши команды тесно сотрудничают с Microsoft, чтобы предоставить вам лучший опыт работы с IDE. Поэтому мы будем рады услышать от вас, если у вас есть какие-либо идеи или отзывы. Не стесняйтесь писать Джону Миллеру по адресу @jmillerdev, старшему менеджеру программы Visual Studio Tools for Unity в Microsoft, или делитесь своими отзывами с нами на нашем форуме Scripting.