Вот краткий список ключевых новинок нашего стека информационно-ориентированных технологий (DOTS). Придерживаясь курса переработки базовых систем Unity на основе DOTS, мы постоянно добавляем в стек новые пакеты. Чтобы начать их использование, установите пакеты DOTS в Unity Package Manager.
Доступен пример проекта на DOTS
На Unite Copenhagen 2019 мы рассказали о примере проекта на DOTS, открытом демонстрационном шутере от третьего лица, показывающем взаимодействие различных новых технологий DOTS (включая Unity Physics, NetCode, Hybrid Renderer и Conversion Workflow).
Пример проекта на DOTS — это простое окружение, демонстрирующее совместную работу пакетов DOTS в многопользовательском шутере на Unity 2019.3. Он планировался как проект для внутренних тестов, но мы решили дать пользователям возможность загрузить и изучить его. Проект опубликован на GitHub со всем исходным кодом и ассетами.
Conversion Workflow (экспериментальная версия)
Новый пакет DOTS Conversion Workflow позволяет преобразовать объекты GameObject в экземпляры для DOTS в один щелчок, чтобы использовать возможности DOTS в рамках ваших привычных методов работы. Например, вы можете использовать объекты GameObject для быстрой итерации дизайна уровня, а затем просто конвертировать их в экземпляры во время работы приложения. Новый Entity Preview Inspector позволяет понять, как объекты GameObject превращаются в экземпляры DOTS.
Этот процесс позволяет с легкостью свести объекты GameObject и классические концепции разработки контента и получить эффективные и производительные данные для работы приложения. Таким образом, вы получаете лучшие свойства обоих подходов: быстрые, понятные методы разработки игровых окружений в редакторе и отлично оптимизированные для ECS эффективные данные приложения, обеспечивающие значительный прирост производительности.
Чтобы испытать на практике новые методы работы, установите пакеты Entities (предварительная версия) и DOTS Editor с помощью менеджера пакетов.
Unity Live Link (экспериментальная версия)
Новое средство Unity Live Link позволяет вносить изменения в редакторе, которые будут тут же отображаться на всех подключенных устройствах с запущенным приложением. Раньше для проверки изменений приходилось создавать исполняемый файл, собирать все ассеты и скрипты, а потом загружать приложение на устройство. Теперь все это можно забыть, ведь изменения применяются в реальном времени.
Поскольку скорость итерации — это ключевой элемент разработки игровых миров, то настройка и отладка алгоритмов взаимодействия пользователя с приложением и проверка игры на реальном целевом устройстве в реальном времени могут сыграть важнейшую роль. Unity Live Link дает возможность оценить производительность приложения на устройстве, позволяя исследовать влияние различных решений на производительность устройства напрямую, находя идеальный баланс между детализацией и производительностью.
Создав сборку Live Link, вы можете просто внести изменения в сцене в редакторе и сохранить сцену, а Unity сведет все изменения и отправит их на проигрыватель Live Link.
Чтобы испытать на практике Unity Live Link, установите пакет Entities (предварительная версия) с помощью менеджера пакетов.
Unity Animation (экспериментальная версия)
Новая система анимации для проектов на базе DOTS предлагает базовые функции анимации, включая смешивание, инверсную кинематику, слои и маски. Кроме того, мы работаем над добавлением новых возможностей. Экспериментальную версию пакета в работе можно увидеть в составе проекта DOTS Sample.
Обновление игрового кода DOTS (предварительная версия)
После этого выпуска DOTS программистам больше не придется писать шаблонный код. Вы можете просто заменить компоненты собственной разработки на атрибут [GenerateAuthoringComponent], и замените объемные структуры IJobForEach и IJobForEachWithEntity на простую, но не менее производительную Entities.ForEach(), которая теперь использует компилятор Burst и систему задач C#.
Установите пакет Entities (предварительная версия) из менеджера пакетов, чтобы перейти на новые способы программирования на базе DOTS.
Unity Physics
В примере проекта на DOTS для обнаружения столкновений и пространственных запросов используется новая физическая система без кэширования Unity Physics. Движок написан на C# / HPC#, он демонстрирует возможности компилятора Burst. Новый движок Physics позволяет быстро и точно определять столкновения для игроков, элементов окружения и снарядов, а также определять попадания. Unity Physics также отвечает за обработку контроллера персонажа, а также за точную и производительную систему постановки ног в примере проекта на DOTS.
Netcode
FPS NetCode, использованный в примере проекта на DOTS, создан на основе нового стека и упрощает разработку сетевой игры с аналогичной архитектурой. Этот компонент обеспечивает прогнозирование на стороне клиента, управляющий сервер и интерполяцию благодаря оптимизированному сетевому протоколу передачи данных. Вводную информацию об FPS NetCode можно получить из доклада Тима Йоханссона на Unite.
Чтобы начать работу, установите пакеты Unity Transport и Unity NetCode из менеджера пакетов.
Обновления DSPGraph
Мы также продолжаем работать над системой микширования и рендеринга звука для DOTS. Мы переработали DSPGraph — новую низкоуровневую подсистему звука — увеличив ее производительность и добавив возможность выполнения подграфов, не влияющих на выходные данные графа. Это означает возможность, например, подключить узел к середине звукового графа, который подсчитывает число ударов в минуту, но он не будет влиять на звуковой сигнал.
Присоединяйтесь к обсуждению звуковой подсистемы DOTS на форуме, задавайте вопросы или делитесь своими требованиями к звуку.