2018.2 теперь доступна

Unity 2018.1 ознаменовал начало нового цикла с двумя основными инновациями в центре. Вместе, Scriptable Render Pipeline (SRP) и Shader Graph дают художникам и разработчикам больше возможностей, в то время как система задач C# Job System, компилятор Burst и ECS позволяют использовать многоядерные процессоры без головной боли от программирования. Unity 2018.2 строится на этих инновациях и добавляет несколько новых функций. Этот пост предоставляет обзор самых важных обновлений в 2018.2.
Пока вы просматриваете список новых функций, вы можете скачать Unity 2018.2 здесь или через Unity Hub.
Одна из целей Unity 2018.2 заключалась в том, чтобы развивать Scriptable Render Pipelines (SRP), чтобы обеспечить рендеринг следующего уровня. Еще одной областью внимания стало развитие ряда функций и улучшений, которые помогут вам добиться успеха в мобильной разработке. Давайте кратко рассмотрим, что мы сделали в этих двух областях, прежде чем углубиться в детали всего релиза.
Unity 2018.2 оптимизирует производительность Lightweight Render Pipeline (LWRP) и улучшает High Definition Render Pipeline (HDRP), чтобы помочь вам достичь высококачественной визуализации, включая множество улучшений Shader Graph, который теперь поддерживает обе трубопроводы (обратите внимание, что как LWRP, так и HDRP в настоящее время находятся в предварительном просмотре).
Мы также добавили поддержку отладки управляемого кода на iOS и Android, Windows, macOS, Nintendo Switch, UWP и PS4 для IL2CPP, и начали добавлять некоторые мобильные оптимизации в Lightweight Render Pipeline (LWRP).
Для проектов Android поддержка 64-бит (ARM64) получает окончательный релиз, и теперь мы позволяем вам добавлять Java-код в папку плагинов Unity без необходимости предварительного создания библиотек.
Наконец, несколько новых 2D функций доступны в качестве предварительных пакетов, включая импортёр векторной графики и Pixel Perfect. Импортёр векторной графики упрощает работу с графикой SVG, а Pixel Perfect упрощает достижение идеального ретро-стиля на разных разрешениях на широком диапазоне устройств.
Чтобы получить обзор всех улучшений в этом релизе, читайте дальше.
В 2018.1 мы представили Scriptable Render Pipeline (в предварительном просмотре), который передает контроль над мощными новыми рендерингами в руки художников и разработчиков. Этот релиз включает следующие обновления SRP:
Ускоряет рендеринг ЦП
Пакетировщик SRP — это новый внутренний цикл движка Unity, который ускоряет рендеринг ЦП, не влияя на производительность ГП. Он заменяет устаревший код рендеринга SRP.
Игры, использующие физически основанный рендеринг (PBR), часто имеют множество различных объектов и мешей, которые используют один и тот же шейдер и ключевые слова для всех различных материалов для каждого объекта. Пакетировщик SRP дает играм, использующим PBR, значительный прирост скорости ЦП.
Пакетировщик SRP работает с высококачественным рендерингом (HDRP) и легким рендерингом (LWRP), в настоящее время поддерживаются PC DirectX-11, Metal и PlayStation 4.
Снижает время сборки игрока и размер данных
Время сборки игрока и размер данных увеличиваются с усложнением вашего проекта из-за увеличенного числа вариаций шейдеров.
С помощью удаления вариаций шейдеров с помощью скриптов, введенного в 2018.2, вы можете управлять количеством создаваемых вариаций шейдеров и, следовательно, значительно сократить время сборки игрока и размер данных.
Эта функция позволяет вам удалять все вариации шейдеров с недействительными кодовыми путями и/или неиспользуемыми функциями, а также создавать конфигурации сборки шейдеров, такие как «отладка» и «релиз», не влияя на время итерации или сложность обслуживания. Удаление вариаций шейдеров с помощью скриптов может привести к значительному увеличению эффективности команды. Смотрите этот блог, чтобы узнать больше о том, как удаление вариаций шейдеров с помощью скриптов реализовано в архитектуре шейдеров Unity.

Обеспечивает высокую производительность
Легкий рендеринг (LWRP) обеспечивает высокую производительность, что особенно полезно для устаревшего оборудования, требовательных приложений, таких как XR, и платформ, таких как мобильные устройства.
LWRP дополнительно улучшает производительность и оптимизацию с помощью оптимизированного использования тайлов. LWRP будет регулировать количество загрузок и сохранений в тайлы, чтобы оптимизировать память мобильных ГП. Он также затеняет свет партиями, что снижает переотрисовку и вызовы отрисовки.
Базовый LWRP в настоящее время поддерживается на всех платформах VR, однако он не будет поддерживать многосемплное сглаживание (MSAA) до 2018.3.
Обратите внимание, что LWRP в настоящее время не поддерживается для портативного AR, такого как ARCore или ARKit, или устройств HoloLens или Magic Leap. Планы по новым продуктам будут сообщены в будущем.

Первый раз выпущен в качестве предварительного просмотра в 2018.1, Высококачественный рендеринг (HDRP) приоритизирует высококачественную визуализацию, ориентированную в первую очередь на высококлассные платформы, такие как ПК и консоли.
В 2018.2 мы сделали еще больше, чтобы помочь вам достичь высококачественной визуализации. Тем не менее, важно отметить, что SRP все еще являются предварительными версиями и, следовательно, пока не рекомендуются и не поддерживаются для производства. Улучшения включают объемные эффекты, глянцевое планарное отражение, геометрическое сглаживание AA, прокси-отражение и преломление в пространстве экрана, декали сетки и маску теней.
Объемные эффекты: Объемный туман получает освещение от всех поддерживаемых типов света, кроме площадного света. Также возможно контролировать плотность тумана локально с помощью объема плотности.
Глянцевое планарное отражение: Планарное отражение теперь поддерживает глянцевое отражение, что означает, что оно учитывает гладкость материала.
Геометрическое сглаживание AA: Сетка с большим количеством треугольников может вызывать алиасинг отражения. Чтобы решить эту проблему, теперь есть возможность уменьшить и ограничить количество алиасинга.
Прокси-отражение и преломление в пространстве экрана: Эта функция позволяет использовать прокси-объем (объем, приближающийся к границе сцены) для выполнения отражения и преломления в пространстве экрана. Хотя это не так точно, как использование буфера глубины, затраты на выполнение ниже.
Декали сетки: Это позволяет вам использовать сетку для декалей в дополнение к декалям проектора.
Теневой маска: Ранее эта функция в HDRP использовала режим Distance Shadowmask (динамическое затенение до теневой маски на максимальном расстоянии затенения). С 2018.2 теперь можно выбирать для каждого источника света, будет ли динамическая тень отображать только объект без светового запекания (соответствующий режиму теневой маски встроенного конвейера). Таким образом, в отличие от встроенного конвейера, HDRP позволяет одновременно включать оба режима теневой маски, и у вас есть управление для каждого источника света для встроенного режима теневой маски.
Кроме того, мы добавили ограниченную поддержку Shader Graph, чтобы вы могли визуально создавать шейдеры, и мы работаем над улучшением общей стабильности и производительности. Ограниченная поддержка означает, что только подмножество функций HDRP доступно в Shader Graph. В настоящее время нет продвинутых функций материалов (SSS, прозрачное покрытие), и тесселяция также в настоящее время недоступна.
Наконец, мы добавили функцию удаления шейдеров, которая позволяет избежать компиляции шейдеров, которые не требуются при сборке игрока. Это приводит к значительно более быстрому времени сборки.
Обратите внимание, что HDRP в настоящее время не поддерживается на каких-либо платформах AR или VR. Поддержка этих платформ запланирована на 2019 год. Планы по новым продуктам будут сообщены в будущем.

Существует несколько улучшений в Прогрессивном Lightmapper, который вышел из предварительного просмотра в 2018.1.
Настраиваемое затухание в Прогрессивном Lightmapper позволяет вам соответствовать физически правдоподобным кривым затухания при запекании ваших источников света. Ранее наблюдаемая интенсивность точечных и направленных источников света сильно зависела от значения диапазона света. Это не физически правдоподобно, потому что расстояние затухания (или ослабление) света в реальности определяется его интенсивностью.

Эта функция позволяет Прогрессивному Lightmapper отделить диапазон и интенсивность, имея затухание расстояния, которое связано с расстоянием в мировом пространстве. Хотя поддержка устаревшего затухания все еще доступна, теперь мы также поддерживаем линейное затухание, квадрат расстояния и квадрат расстояния с ослаблением до нуля на предельных значениях диапазона. Обратное квадратное затухание включено по умолчанию в HDRP, чтобы соответствовать освещению в реальном времени, и включает физические единицы для интенсивности света.
Ранее мы выделяли эмиссию и альбедо в уникальном пространстве светокарты для всех наших светокарт. Однако, поскольку экземпляры обычно разделяют характеристики альбедо/эмиссии, теперь мы поддерживаем генерацию этих карт для каждого уникального экземпляра. Это уменьшает объем памяти, используемой Прогрессивным Lightmapper, позволяя вам запекать даже более крупные сцены.
По соображениям производительности часто предпочтительно разбивать более крупные сцены на меньшие «подсцены», которые могут загружаться или выгружаться во время выполнения в зависимости от видимости. Это известно как «аддитивная загрузка» или настройка «мультисцены».
Поддерживаемый рабочий процесс, который Unity предлагает при генерации GI освещения для конфигураций мультисцены, позволяет пользователю загружать все необходимые подсцены, а затем генерировать освещение для этой полной иерархии сцены. Выходом является LightingData.asset, который хранит светокарты, предвычисленное реальное время GI и данные зондов. Это связано с первой сценой, которая загружается, что можно интерпретировать как «главную» сцену.
Сцены, которые затем загружаются/выгружаются во время выполнения, получают свои данные освещения из LightingData.asset, связанного с главной сценой. В этом сценарии настройки освещения подсцен не имеют значения. Однако сцены также могут запекаться индивидуально или загружаться в другом порядке в зависимости от намерения. Это может привести к тому, что сцены будут иметь несовместимые настройки освещения и несоответствующие данные освещения. Например, skybox могут отличаться, разрешения светокарт могут варьироваться или смешанные режимы освещения могут быть разными.
Ранее Unity не предупреждала пользователя об этой проблеме, и это привело к некоторой путанице, когда результаты не соответствовали ожиданиям. Теперь Unity генерирует предупреждение, чтобы информировать пользователя о наличии несовместимости. Затем предоставляется явная информация о любых несовместимостях для упрощения отладки и проверки.
Мы также открыли опцию "по источнику света" для функции отсева теней, отрисованных на картах освещения (только API сценариев), что позволяет использовать её в HDRP.
В версии 2018.1 мы представили Shader Graph как пакет предварительного просмотра, чтобы вы могли визуально создавать шейдеры. Вместо написания кода вы можете создавать и соединять узлы в графовой сети. Каждый узел в графе дает мгновенную обратную связь о изменениях, и его простота в использовании означает, что даже новые пользователи могут участвовать в создании шейдеров. Для этого релиза мы внесли несколько улучшений, включая:
Shader Graph теперь поддерживает HDRP с узлами PBR и Unlit Master. Шейдеры, созданные с помощью Shader Graph, работают как с LWRP, так и с HDRP.

Теперь вы можете изменять позицию вершин через слот Position на узлах PBR и Unlit Master. По умолчанию входные данные для этого узла - это позиция в объектном пространстве. Пользовательские входные данные для этого слота должны указывать абсолютную локальную позицию данной вершины. Некоторые узлы (такие как Процедурные формы) не подходят для вершинного шейдера. Такие узлы несовместимы с этим слотом.

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

Теперь вы можете редактировать имя ссылки для свойства, что значительно упрощает ссылку на ваши свойства шейдера из сценария. Для этого выберите свойство и введите новое имя рядом с Reference. Если вы хотите сбросить имя по умолчанию, щелкните правой кнопкой мыши на Ссылке и выберите Сбросить ссылку.
В расширенном окне Свойств вы также можете переключить флажок Экспонировать.
Теперь вы можете изменить путь Шейдерных графиков и Подграфиков. Когда вы изменяете путь Шейдерного графика, это изменяет его местоположение в списке выбора шейдеров. Когда вы изменяете путь Подграфика, он будет иметь другое местоположение в меню создания узлов.

С помощью этого узла вы можете изменить выход графика в зависимости от знака грани данного фрагмента. Если текущий фрагмент является частью передней грани, узел возвращает Истина. Для задней грани узел возвращает Ложь. Примечание. Эта функция требует, чтобы вы включили двусторонний на главном узле.

Это добавляет функциональность градиента через два новых узла. Узел Образец градиента образцы градиента с заданным параметром Время. Вы можете определить этот градиент в представлении управления слотом Градиент. Узел Актив градиента определяет градиент, который может быть образцом для нескольких узлов Образец градиента с использованием различных параметров Время.

Это изменение расширяет поддержку Unity для типов текстур через два новых типа свойств и четыре новых узла. Эти узлы позволяют вам определять и образцы активов типа Texture 3D и Texture 2D Array в Шейдерном графике.
Это добавляет новый узел для функциональности LOD на текстуре 2D образца. Образец текстуры 2D LOD использует те же входные и выходные слоты, что и образец текстуры 2D, но также включает вход для корректировки уровня детализации через слот Vector1.
Теперь вы можете увидеть сгенерированный код для любого конкретного узла. Для этого щелкните правой кнопкой мыши на узле и выберите "Показать сгенерированный код". Фрагмент кода откроется в редакторе кода, который вы связали с Unity.
Этот релиз включает экспериментальную поддержку запуска редактора на Vulkan как для Windows, так и для Linux. Vulkan — это API нового поколения для графики и вычислений, который предоставляет высокоэффективный, кроссплатформенный доступ к современным графическим процессорам, используемым в самых разных устройствах, от ПК и консолей до мобильных телефонов и встроенных платформ.
В этом релизе мы добавили поддержку потоковой передачи текстурных мипмапов в память по запросу (т.е. только когда они необходимы).
Какова выгода?
Вы можете включить эту функцию, чтобы уменьшить требования к памяти текстуры приложения Unity.
Как это работает
Когда эта система включена, Unity будет загружать текстурные мипмапы более высокого разрешения только тогда, когда меши находятся близко к активной камере. Данные мипмапов высокого разрешения хранятся в памяти, пока общая память текстуры находится в пределах бюджета, определенного пользователем. Если загрузка нового уровня мипмапа приведет к превышению бюджета памяти текстуры, то мипмапы более высокого разрешения, находящиеся на мешах, наиболее удаленных от камеры, будут освобождены из памяти.
Ускоряет время первоначальной загрузки
Время первоначальной загрузки сцены также может ускориться из-за уменьшения объема данных текстуры, которые загружаются в первую очередь (т.е. загрузка только уровней мипмапа более низкого разрешения). Улучшения скорости первоначальной загрузки зависят от платформы.
Больше контроля
Система потоковой передачи текстурных мипмапов дает вам полный контроль над тем, какие уровни мипмапов фактически загружаются в память. Обычно Unity загружает все уровни мипмапов, которые хранятся на диске, но с этой системой вы можете напрямую контролировать, какие уровни мипмапов загружаются.
Эта система также обменивает небольшое количество времени ЦП на потенциально большие экономии памяти ГП.
Просто включить и управлять
Эту функцию просто включить через настройки качества, где вы можете определить для каждой текстуры, должна ли она быть потоковой системой. Вы можете запрашивать метрики, чтобы определить использование памяти текстуры, при этом все еще видя экономию памяти.
Также можно настроить различные параметры для управления системой, чтобы она балансировала экономию памяти и затраты ЦП, и чтобы вы могли приоритизировать некоторые текстуры над другими (например, текстуры персонажей над текстурами окружения).

AnimationPlayables теперь позволяют пользователям писать свои собственные C# Playables для прямого взаимодействия с данными анимации.
Пользователи также могут писать многопоточный C# код для управления данными AnimationStream, используемыми PlayableGraph, что также позволяет интеграцию пользовательских решателей IK, процедурной анимации или даже пользовательских микшеров в текущую анимационную систему.
Вот улучшения в 2018.2:
Поддержка восьми UV
Это позволяет вам использовать больше пользовательских данных, чем когда-либо прежде.
MinMaxCurve и MinMaxGradient
Теперь возможно использовать эти типы в ваших пользовательских скриптах, вне систем частиц, чтобы соответствовать стилю, используемому в пользовательском интерфейсе системы частиц.
Линейное цветовое пространство
Системы частиц теперь преобразуют цвета в линейное пространство, когда это уместно, перед загрузкой их в ГП.
Эмитировать из спрайтов
Мы добавили два новых режима в модуль Shape, чтобы излучать из компонента sprite или SpriteRenderer и идеально соответствовать эмиссии частиц визуалам спрайта.
ЗапеканиеМеш
Существуют два новых API для запекания геометрии системы частиц в меш: BakeMesh запекает геометрию частиц, а BakeTrailsMesh запекает модуль Trails в меш.
Показать только выбранные (также известный как режим Solo)
Это очень запрашиваемая функция, она стала более доступной и заметной наряду со всеми другими элементами управления предварительным просмотром на наложении вида сцены, с элементами управления Воспроизведение/Перезапуск/Остановка и т. д.
Поддержка текстур ETC
Шейдеры, которые используют отдельные альфа-текстуры, теперь могут использоваться с частицами, когда вы используете спрайты в модуле анимации текстурного листа.
Попробуйте пакет предварительного просмотра Pixel Perfect, чтобы оставаться верным вашему видению пиксельного искусства. Компонент Pixel Perfect Camera поможет вам получить идеальные, четкие пиксели – независимо от размера экрана – автоматически выполняя все расчеты за вас.
Ваши спрайты даже получат выгоду от этой функции, когда они находятся в движении или вращении, всегда сохраняя четкую пикселизацию, без необходимости добавлять интерполяцию для сглаживания краев, как показано ниже.

Традиционно расстояние между центром Sprite Renderer и осью используется для определения, какой спрайт будет отрисован последним и, следовательно, появится на переднем плане изображения.
С этим релизом вы можете использовать точку поворота вместо центра спрайта в качестве опорной точки в различных методах сортировки, таких как упорядочение по расстоянию до верхней части экрана. Например, в RPG-играх с видом сверху вам нужно дно спрайта, чтобы определить порядок отрисовки спрайта.
Новая конфигурация точки поворота позволяет вам установить критерии, которые лучше подходят для вашей игры.

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


Эта функция позволяет вам импортировать масштабируемую векторную графику (SVG) непосредственно в ваши проекты. Импортер SVG позволяет создавать спрайтовые активы с очень маленьким размером файла, которые сохранят свое качество при любом разрешении.
Импортер SVG поддерживает наиболее распространенные функции спецификации SVG 1.1, такие как градиенты, заливки, обрезанные пути, пунктирные линии и закругленные углы. Векторные графические спрайты, импортированные таким образом, поддерживаются инструментами Unity 2D.
После импорта файла SVG векторные данные тесселируются в треугольники, и создается спрайт. Этот спрайт затем может быть использован системой 2D. Исходный код для Импортера SVG можно найти в папке Editor пакета.
Получите Импортер SVG как часть пакета предварительного просмотра векторной графики из Менеджера пакетов.
API векторной графики могут быть использованы для создания и манипуляции векторными конструкциями непосредственно в коде. Исходный код для API векторной графики можно найти в пространстве имен векторной графики в папке Runtime.
Вы можете использовать API векторной графики для создания или манипуляции векторными данными непосредственно в коде. Новый API Атласа 2D позволяет вам писать пользовательские инструменты для создания или обновления атласов. Например, вы можете создать персонализированные текстуры персонажей, используя фотографию профиля игрока, или вы можете оптимизировать атлас на основе конфигурации игрока.
Теперь у вас есть возможность добавлять .java (а также .cpp и .a) исходные файлы в папки плагинов проекта Unity. Эти файлы будут распознаны как плагины Unity и скомпилированы в APK без необходимости пользователю отдельно собирать библиотеки в Android Studio. Код плагина остается частью проекта Unity, устраняя необходимость создания отдельного проекта Android Studio.
Мы удалили версию стандартных активов 5.0 из установщика в 2018.2 и работаем над пакетами замены для каждой части бывшего пакета прототипирования. Первый пакет (Стандартные активы: Персонажи) будет доступен в качестве предварительного просмотра вскоре после выпуска 2018.2. Он будет содержать контроллер от первого и третьего лица, интегрированный с Cinemachine, а также среду прототипирования, созданную с помощью Probuilder. Для получения подробной информации следите за публикацией в блоге на эту тему в ближайшие недели. Для тех из вас, кто нуждается в устаревшем пакете 5.0, он останется в магазине активов.
Unity Hub (v1.0), который будет выпущен скоро, является новым инструментом, разработанным для упрощения процессов ввода и настройки для всех пользователей. Он предоставляет централизованное место, где вы можете управлять своими проектами Unity, и упрощает поиск, загрузку и управление лицензиями редактора Unity и дополнительными компонентами.
С момента нашего первоначального выпуска мы усердно работали над исправлением ошибок и улучшением опыта. За последние шесть недель мы уже опубликовали более четырех релизов, которые были автоматически загружены и обновлены на машинах наших пользователей. Вот несколько вещей, которые будут включены в Hub 1.0:
- Шаблоны проектов
- Пользовательское место установки
- Добавлены пакеты магазина активов в новые проекты
- Измененная цель сборки проекта
- Редактор: Добавлены компоненты после установки
Если вы пропустили бета-релиз в январе, вы можете прочитать об этом в публикации блога здесь.
Этот релиз включает новые функции, которые позволяют художникам и операторам чувствовать себя более уверенно и контролировать процесс работы в Unity, включая следующее:
- Новый переключатель физической камеры позволяет вам раскрыть настройки, которые художники и операторы найдут мгновенно знакомыми, такие как стандартная фокусное расстояние, размер сенсора и свойства сдвига объектива.
- Импортёр моделей теперь сохраняет свойства физических камер, экспортируемых из Autodesk® Maya® и других совместимых DCC.
- Камеры в Unity теперь идеально соответствуют камерам в других DCC без необходимости в дополнительных компонентах или ручном расчёте FOV.
- Компонент камеры теперь предоставляет выпадающий список размеров сенсоров для распространённых реальных камер.



Unity Recorder 1.0, который будет выпущен скоро, включает множество обновлений, которые предоставляют пользователям простой способ управления и записи анимационных клипов, видео и последовательностей изображений из редактора:
- Новый интерфейс: Чистый вид и простой способ управления вашими записями.
- Предустановки: Сохраните ваши настройки, чтобы вам не нужно было начинать с нуля.
- API: Используйте скрипты для запуска записей через API.
- Несколько записей: Начните несколько записей одновременно и сохраните их в списке, если вам нужно использовать те же настройки в будущем.
- Записывайте видеоклипы с аудио в нескольких форматах.
- Записывайте последовательности изображений в нескольких форматах.
- Записывайте и экспортируйте анимации: Экспортируйте анимационные клипы (через FBX) в ваши любимые DCC приложения.
Unity Recorder v1.0 будет доступен в Asset Store.
RakNet, наша прежняя функция сетевого взаимодействия, была устаревшей в версии 5.1 и была удалена из Unity 2018.2. Это означает, что любой проект, использующий RakNet, не будет работать с этой версией.
Система адресуемых активов упрощает управление всеми элементами, составляющими вашу игру, такими как префабы, текстуры, материалы, аудиоклипы, анимации и так далее. По мере роста проектов количество активов также увеличивается. Пользователи должны ссылаться на них разумно, иначе все в вашей игре, от локальной памяти до распределения контента, станет трудно управляемым.
Ваша стратегия распределения контента, в частности, будет сложнее в управлении, потому что ссылки на активы обычно разрешаются во время сборки, и пользователи часто сталкиваются с серьезной переработкой, чтобы внести изменения.
Новая система адресуемых активов упрощает масштабирование вашей команды по мере увеличения размера вашей игры. Она разделяет три основные задачи управления активами во время выполнения: ссылки, упаковка и распределение. Это упрощает ссылку на контент, будь то на локальной машине или распределенном онлайн через CDN, потому что контент автоматически загружается и выгружается для лучшего управления памятью. Мы также предоставляем инструменты профилирования для дальнейшей оптимизации использования памяти. В конечном итоге это приводит к более быстрому времени итерации для вас.
Новая система адресуемых активов поставляется отдельно. Она доступна как дополнение через Менеджер пакетов и сейчас находится в предварительном просмотре.
Если у вас есть 4K монитор, вы теперь можете наслаждаться поддержкой масштабирования High-DPI как на Linux, так и на Windows в редакторе и поддержкой факторов масштабирования для каждого монитора на Windows.
С версии Unity 2018.1 мы поддерживаем два скриптовых бэкенда на Universal Windows Platform (UWP): .NET и IL2CPP. С этим релизом мы прекращаем поддержку .NET скриптового бэкенда. Цели этого устаревания двояки.
Упрощение портирования игр на UWP
Первая цель этого устаревания — упростить вам портирование игр на UWP. Большая часть проблем разработчиков, связанных с портированием игр на UWP в прошлом, была вызвана различиями в API и различиями между .NET Native и средами выполнения Mono и IL2CPP, которые Unity использует на других платформах. Это изменение в конечном итоге упростит портирование игр на UWP для большинства разработчиков.
Помогает нам предлагать лучшую поддержку
Вторая причина этого устаревания — упростить нам поддержку вас, эффективно исправляя проблемы. Поскольку .NET скриптовый бэкенд совершенно отличается от сред выполнения, которые мы используем для всех других платформ Unity, нам было сложно поддерживать единый уровень качества по сравнению с остальной частью Unity. Это устаревание в конечном итоге позволит нам тратить меньше времени на поддержку .NET скриптового бэкенда и больше времени на работу над функциями и проблемами, которые наиболее важны для вас.
IL2CPP имеет тот же API .NET, что и все другие платформы Unity, и IL2CPP уже некоторое время поддерживает доступ к типам и API WinRT. Таким образом, с добавлением отладчика IL2CPP в 2018.2, опыт разработчиков на IL2CPP теперь сопоставим с тем, что предоставляет .NET скриптовый бэкенд, и даже превосходит его.
IL2CPP является стандартом с версии 2017.2, поэтому мы ожидаем, что у большинства пользователей не будет с этим проблем. Однако, если вы еще не пробовали использовать IL2CPP и у вас возникли какие-либо проблемы, пожалуйста, обязательно сообщите о них. Мы планируем прекратить поддержку бэкенда для .NET скриптов в 2019.1.
С нашей новой высокопроизводительной многопоточной системой, представленной в 2018.1, мы перестраиваем самую основу Unity. Новая система позволит вашим играм в полной мере использовать многоядерные процессоры, доступные в настоящее время, — без головной боли от программирования. Это возможно благодаря новой системе задач C#, которая предоставляет безопасную и простую песочницу для написания параллельного кода. Мы также представляем новую модель для написания производительного кода по умолчанию с помощью системы компонентов Entity Component System (ECS) и компилятора Burst для создания высоко оптимизированного нативного кода.
С отличной производительностью по умолчанию вы сможете запускать свои игры на более широком спектре оборудования, а также создавать более богатые игровые миры с большим количеством юнитов и более сложными симуляциями. Вы можете узнать больше здесь.
В версии 2018.2 мы добавили несколько улучшений, включая примеры реактивной системы. Реактивная система позволит вам реагировать на изменения состояния компонентов и эмулировать поведение, основанное на событиях. Вы можете узнать больше о реактивных системах, посмотрев доклад Йоахима Анте на Unite Berlin по этой теме.
Мы также предоставим ряд примеров и документации о том, как реализовать реактивные системы с использованием ECS.
В течение второй половины года мы будем предоставлять небольшие образцы игр Unity, созданные пользователями Unity и преобразованные в ECS нами.
С этим релизом компиляция Burst для ECS доступна на всех платформах редактора (Windows, Mac, Linux), и вы сможете создавать AOT для автономных игроков (Desktop, PS4, Xbox, iOS, Android и Nintendo Switch).
По мере продвижения к версии 2018.3 мы продолжим сосредотачиваться на производительности ECS, выпустим предварительный просмотр детерминизма и поддержим больше конструкций языка .NET C# (DllImport, постоянные массивы, foreach и т. д.).
Мы планируем вывести компилятор Burst из предварительного просмотра в рамках 2018.3.
IL2CPP-управляемая отладка теперь доступна, позволяя разработчикам использовать предпочитаемый отладчик для поиска и исправления ошибок, даже при использовании бэкенда IL2CPP.
Все функции отладки будут поддерживаться для Visual Studio (с инструментами Visual Studio для Unity) и JetBrains Rider на автономных платформах, PlayStation 4, мобильных платформах и Xbox One, запланированных на позже.

Unity 2018.2 поставляется с десятками исправлений ошибок, связанных с временем выполнения сценариев, благодаря всем замечательным отзывам, которые мы получили с момента .NET 4.x.
С этим релизом поддержка ARM64-бит для Android, основанная на технологии IL2CPP, снимает метку Preview. Эта версия предоставляет вам преимущества производительности, поскольку 64-битные Android-приложения и ваши игры смогут адресовать более 4 ГБ памяти.
Теперь у вас есть возможность разделить целевую архитектуру (x86, ARM 32, ARM 64) на несколько APK, а не создавать один большой. Затем, для магазинов, которые поддерживают эту опцию (например, Google Play), вам нужно будет загрузить только APK с соответствующей архитектурой.

Одним из самых больших барьеров для привлечения новых игроков является сложность процесса установки.
Загрузка и открытие приложения занимает время, и многие пользователи отказываются от него, прежде чем попробовать вашу игру.
С Google Play Instant игроки могут попробовать 10 МБ мгновенную версию игры, не устанавливая ее сначала. Этот плагин упрощает преобразование Android-приложения на базе Unity в мгновенное приложение, которое можно развернуть через Google Play Instant.
Плагин доступен как проект на GitHub для использования с Unity 2017.x и более новыми версиями.
Функции плагина включают:
- Опция переключения между режимами Установлено и Мгновенное создание
- Централизованный обзор настроек сборки Unity и настроек Android Player, которые необходимо изменить для поддержки Google Play Instant
- Возможность сборки и запуска мгновенного приложения на Android-устройстве, подключенном к ADB
Теперь мы полностью поддерживаем современное шифрование (TLS1.2) на всех платформах с .NET 4.x и API UnityWebRequest. Это включает автоматическую проверку против хранилищ сертификатов, специфичных для платформы.
На Xbox One и PS Vita, которые не предоставляют доступ к проверке системного хранилища, используется встроенное хранилище CA для проверки.
Как было объявлено ранее, мы завершили устаревание UnityScript с этим релизом. Смотрите блог Ричарда Файна с прошлого лета для получения подробной информации.
В общем, мы приняли это решение, потому что, продолжая обновлять среду выполнения сценариев и версию C#, которую мы поддерживаем, C# откроет большие возможности:
- Обновление среды выполнения сценариев позволяет вам использовать .NET 4.6 и более поздние версии C# 7.
- Система JobSystem позволяет легко писать многопоточный код таким образом, чтобы защитить вас от гонок данных и взаимных блокировок.
- Тип NativeArray позволяет вам создавать и работать с большими массивами, хранилище которых контролируется нативным кодом, что дает вам больше контроля над поведением выделения и устраняет проблемы с сборкой мусора.
- Вы контролируете конвейер компиляции скриптов, поэтому можете настроить, как ваши скрипты объединяются в сборки.
Мы также прекратили прием новых пакетов Asset Store, содержащих код UnityScript, и удалили пакеты с UnityScripts.
Наконец, мы предоставили инструмент автоматического преобразования UnityScript в C#. Существует несколько таких инструментов, но нам не понравились подходы, которые они используют. Поскольку мы многому научились, работая с кодом UnityScript, когда писали обновление скриптов, мы решили применить эти знания и создать собственное решение. Вы можете скачать его здесь.
Для тех, кто заинтересован в использовании Visual Studio Code в качестве IDE, мы разработали и поддерживаем расширение отладчика Visual Studio Code для Unity, которое доступно в режиме предварительного просмотра.

Для тех, кто заинтересован в использовании VSCode для отладки кода C# в Unity, пожалуйста, перейдите к этому сообщению на форуме и попробуйте. Нам было бы интересно узнать, что вы об этом думаете. Обратите внимание, что мы также обновляем расширение, чтобы оно поддерживало отладку C# в новой среде выполнения Mono в Unity и устраняли сообщенные ошибки.
HoloLens Голографическая удаленная работа позволяет приложениям использовать мощность локального настольного компьютера для разгрузки рендеринга и обработки во время выполнения. Мы думаем, что наши клиенты из автомобильной и AEC отраслей найдут эту функцию особенно полезной. Узнайте больше о том, как начать.
В выпуске 2018.2 также включены 183 улучшения и 1426 исправлений. Обязательно ознакомьтесь с примечаниями к выпуску для полного списка новых функций, улучшений и исправлений. Мы будем рады обсудить ваши отзывы о новых функциях на нашем форуме.
Если вы были бета-тестером, вы помогли сделать выпуск 2018.2 возможным. Так что спасибо, что опробовали все новые функции и предоставили отличные отзывы.
Победители розыгрыша набора Unity Gear из 25 человек
В настоящее время мы рассматриваем всех участников розыгрыша бета-версии 2018.2 и вскоре отправим подарочные сертификаты по электронной почте 25 победителям. (Чтобы претендовать на приз, вы должны были отправить отчет о баге, который не был ранее сообщен, который мы могли воспроизвести и который мы признали багом.)
Станьте частью следующей бета-версии
Если вы еще не являетесь бета-тестером, подумайте о том, чтобы стать им. Вы получите ранний доступ к последним новым функциям и сможете протестировать, совместим ли ваш проект с новой версией. Вы также сможете поучаствовать с некоторыми из ведущих экспертов в сообществе Unity, помочь повлиять на будущее Unity и получить шанс выиграть классные призы.
Вы можете получить доступ, просто скачав нашу открытую бета-версию. Присоединившись, вы не только получите доступ ко всем новым функциям, но и сможете помочь нам обеспечить высокое качество программного обеспечения.
В качестве отправной точки ознакомьтесь с этим руководством по эффективному бета-тестированию. Если вы хотите получать периодические электронные письма с новостями бета-версии, обновлениями и советами и хитростями, пожалуйста, подпишитесь ниже.
