Разработка приложений для современных платформ включает в себя гораздо больше действий, чем просто написание кода. Эти действия, называемые DevOps (разработка и операции), охватывают полный жизненный цикл приложения и включают планирование и отслеживание работы, проектирование и реализацию кода, управление репозиторием исходного кода, выполнение сборок, управление непрерывными интеграции и развертываниями, тестирование (включая модульные тесты и тесты пользовательского интерфейса), выполнение различных форм диагностики в средах разработки и рабочей среды, а также мониторинг производительности приложения и поведения пользователей в реальном времени с помощью телеметрии и аналитика.
Visual Studio вместе с Azure DevOps Services и Team Foundation Server предоставляет различные возможности DevOps. Многие из них применимы к кроссплатформенным проектам, включая игры и иммерсивные графические приложения, созданные с помощью Unity, особенно при использовании C# в качестве языка сценариев. Однако, поскольку Unity имеет собственную среду разработки и подсистему выполнения, ряд функций DevOps не применяются так, как это было бы для других типов проектов, созданных в Visual Studio.
В следующих таблицах описано, как функции DevOps в Visual Studio применяются или не применяются при работе с Unity. Дополнительные сведения о самих функциях см. в связанной документации.
Общие комментарии. Хотя эти функции проектирования являются независимыми от языка программирования или работают с языками .NET, такими как C#, они работают с традиционной парадигмой приложения с иерархиями объектов и связями классов. Проектирование игры в Unity включает в себя другую парадигму в целом, а именно отношения графических объектов, звуков, шейдеров, сценариев и т. д. По этой причине средства моделирования Visual Studio не особенно важны для всего проекта Unity. Они могут использоваться для управления связями в скриптах C#, но это только одна часть всего.
Особенность
Поддерживается с помощью Unity
Дополнительные комментарии
Схемы последовательностей
Нет
Графы зависимостей
Нет
Иерархия вызовов
Нет
Конструктор классов
Нет
Обозреватель архитектуры
Нет
Схемы UML (вариант использования, действие, класс, компонент, последовательность и DSL)
Проекты Unity — это просто коллекция файлов, которые можно поместить в системы управления версиями, как и любой другой проект, но в этой таблице описано несколько специальных рекомендаций.
Особые рекомендации по управлению версиями с помощью Unity:
Unity отслеживает метаданные о игровых ресурсах в одной непрозрачной библиотеке, скрытой по умолчанию. Чтобы сохранить файлы и метаданные в синхронизации, необходимо сделать метаданные видимыми и хранить их в более управляемых блоках. Дополнительные сведения см. в статье Использование внешних систем управления версиями в Unity документация по Unity.
Не все файлы и папки в проекте Unity подходят для управления версиями, как описано в приведенной выше ссылке. Папки Assets и ProjectSettings должны быть добавлены, но папки Library и Temp не должны быть. Дополнительный список созданных файлов, которые не будут использоваться в системе управления версиями, см. в разделе Как использовать Git для системы управления версиями Unity3D? в Stack Overflow. Многие разработчики также писали блоги на эту тему независимо.
Двоичные ресурсы в проекте Unity (например, текстуры или звуковые файлы) могут занимать большое количество памяти на диске. Различные системы управления версиями, такие как Git, хранят уникальную копию файла для каждого изменения, даже если изменение влияет только на небольшую часть файла. Это может привести к тому, что репозиторий Git раздуется. Для решения этой проблемы разработчики Unity часто выбирают добавление только конечных ресурсов в свой репозиторий и используют разные средства хранения рабочей истории своих ресурсов, таких как OneDrive, DropBox или git-приложение. Этот подход работает, так как такие ресурсы, как правило, не нуждаются в версионировании вместе с изменениями исходного кода. Разработчики также обычно устанавливают режим сериализации активов редактора проекта для принудительного хранения файлов сцен в текстовом формате, а не в двоичном формате, что позволяет объединяться в системе управления версиями. Дополнительные сведения см. в параметрах редактора (документация по Unity).
Проекты Unity создаются через среду Unity, а не через систему сборки Visual Studio (сборка в Visual Studio Tools for Unity компилирует скрипты, но не создает исполняемый файл). Можно создавать проекты Unity из командной строки (документация по Unity), поэтому можно настроить процесс MSBuild на сервере TFS для выполнения соответствующих команд Unity, если на этом компьютере установлена сама Unity.
Unity также предлагает Unity Cloud Build, которая отслеживает репозиторий Git или SVN и выполняет периодические сборки. В настоящее время он не работает с TFVC или Azure DevOps Services.
Локальный сервер сборки, связанный с Azure DevOps Services
Возможный
Учитывая те же условия, что и выше, можно направлять сборки, инициированные с помощью Azure DevOps Services, для использования локального сервера TFS. См. агенты сборки и выпуска для инструкций.
Служба хостинга контроллера Azure DevOps Services
Нет
Сборки Unity в настоящее время не поддерживаются.
Создавайте определения с префиксами и постфиксами
Да
Настраиваемое определение сборки, использующее командную строку Unity для запуска сборки, также можно настроить для скриптов до и после сборки.
Непрерывная интеграция, включая входные входы
Да
Управляемые изменения только для TFVC, поскольку Git использует модель pull request вместо фиксирования изменений.
Тест
Особенность
Поддерживается с помощью Unity
Дополнительные комментарии
Планирование тестов, создание тестовых вариантов и организация наборов тестов
Да
Тестирование вручную
Да
Диспетчер тестов (тесты записи и воспроизведения)
Только устройства Windows и эмуляторы Android
Покрытие кода
n/a
Неприменимо, так как модульное тестирование происходит в Unity, а не в Visual Studio, см. ниже.
Протестируйте модульно ваш код
В Unity, но не в Visual Studio
Unity предоставляет собственную платформу модульного тестирования в рамках средств тестирования Unity (Unity Asset Store). Результаты модульного теста передаются в Unity и не будут отображаться в Visual Studio.
Закодированные тесты пользовательского интерфейса используют доступные для чтения элементы управления в пользовательском интерфейсе приложения; Приложения Unity являются графическими в природе, поэтому содержимое недоступно для чтения средствами тестирования закодированного пользовательского интерфейса.
Средства Visual Studio не имеют перехватчиков в платформу Mono (как используется Unity) для профилирования. Используйте профилировщик Unity (см. документацию Unity).
Аналитика сбоев, телеметрия и распространение бета-версий
Да
HockeyApp в основном полезна для обработки бета-дистрибутива и получения отчетов о сбоях.
Для телеметрии из скриптов C# можно использовать любую платформу аналитики, при условии, что она работает на версии .NET, которая используется в Unity. Однако это позволяет анализировать только в игровых сценариях, а не более глубоко внутри подсистемы Unity. В настоящее время для Application Insights нет подключаемого модуля, но подключаемые модули доступны для других решений аналитики, таких как Unity Analytics и Google Analytics. Службы, такие как Аналитика Unity, которые понимают характер проекта Unity, конечно, обеспечивают гораздо более значимый анализ, чем универсальные платформы.
Эта сертификация измеряет возможность выполнения следующих технических задач: проектирование и реализация процессов и коммуникаций, проектирование и реализация стратегии управления версиями, проектирование и реализация конвейеров сборки и выпуска, разработка плана безопасности и соответствия требованиям и реализация стратегии инструментирования.
Подключение Unity и Visual Studio и использовать Инструменты Visual Studio для Unity для поддержки написания и отладки для кроссплатформенной разработки.
Ознакомьтесь Инструменты Visual Studio для Unity с бесплатным расширением Visual Studio, которое помогает разрабатывать кроссплатформенные игры и приложения с помощью Unity.
Устранение неполадок Инструменты Visual Studio для Unity, просмотр известных проблем и решений для подключений, выполнения программы, совместимости проектов, отладки и IntelliSense.