Search Unity

В последний выпуск цикла Unity 5 входят превью Progressive Lightmapper, новые режимы освещения (Light Modes), поддержка Vulkan, новый видеоплеер, поддержка Facebook Gameroom, Google Daydream и многое другое.

Цикл Unity 5 начался на GDC 2015 два года назад. Сегодня мы завершаем его выпуском версии 5.6. Надеемся, что новые функции и улучшения данной версии помогут вашим проектам.

Зарегистрированные пользователи могут скачать Unity 5.6 здесь, а новым пользователям — добро пожаловать сюда!

Коротко о Unity 5.6

Значительные улучшения освещения
В 5.6 включена превью версия Progressive Lightmapper, который позволяет быстро проверить несколько различных схем освещения и сильно уменьшить время итераций по сравнению с Enlighten. В версии 5.6 также появились новые режимы освещения (Light Modes), позволяющие сочетать запеченное освещение статических и динамических объектов с освещением в реальном времени.

Повышенная производительность графики
GPU Instancing позволяет реализовать новые эффекты, требующие отрисовки множества похожих объектов при минимальном потреблении ресурсов. А поддержка Compute шейдеров в Metal позволяет более эффективно использовать GPU устройств на базе Apple iOS и macOS.

Поддержка Vulkan
Поддержка Vulkan увеличивает производительность, снижая потребление ресурсов драйвером и нагрузку на CPU, высвобождая его для других вычислений или отрисовки и экономя заряд батареи на мобильных устройствах.

Масштабное обновление системы частиц
Unity 5.6 расширяет возможности применения систем частиц благодаря дополнительным настройкам. Кроме того, мы серьезно улучшили производительность системы частиц.

Новый видеоплеер
Новый мультиплатформенный видеоплеер поддерживает ролики с разрешением 4k, позволяя создавать VR-проекты с 360˚видео.

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

Новые инструменты и улучшения для 2D
В Unity 5.6 появилась масса функций для 2D, облегчающих процесс создания сложных двухмерных объектов. Новые функции двухмерной физики, включающие взаимодействие частиц с 2D-объектами, будут полезны геймдизайнерам и художникам по эффектам.

TextMesh Pro
Один из самых популярных ассетов из Unity Asset Store теперь доступен бесплатно пользователям версий 5.3+ и скоро будет включен в стандартный набор инструментов Unity. TextMesh Pro используется для создания текстовых объектов с продвинутым рендерингом и динамическим оформлением и включает улучшенные средства форматирования текста.

Улучшение системы отладки и отчетов о производительности
Помимо отчетов об исключениях в C# коде, Performance Reporting теперь собирает нативные крэши для iOS. Визуализация отладки физики и улучшения профайлера облегчают поиск источника проблем с производительностью игры.

Новые платформы
С Unity 5.6 вы можете легко публиковать контента в Facebook Gameroom, Google Daydream и Cardboard для Android и iOS. Кроме того, добавлена поддержка Nintendo Switch.

Unity Collaborate (бета)
Мы добавили новые функции для публикации изменений, улучшающие управление вашими проектами в Collaborate.

Экспериментальная поддержка WebAssembly
В версии 5.6 появилась поддержка WebAssembly, новой кроссбраузерной технологии, улучшающей работу с Unity WebGL.

Что нового в 5.6?

Progressive Lightmapper (превью версия)
Одна из самых примечательных функций версии 5.6 — Progressive Lightmapper, новая система запекания света на базе path tracing. Она ускоряет итерацию запеченного освещения и сокращает время запекания. В версии 5.6 доступна превью версия этой системы.

В Unity 5.0 мы заменили Beast на Enlighten для запекаемого и просчитываемого в реальном времени освещения (Global Illumination, GI). Однако Enlighten применим не ко всем случаям запеченного освещения, поэтому нам и понадобилось решение в виде Progressive Lightmapper.

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

В предыдущих версиях Unity любые изменения сцены приводили к необходимости запекать освещение заново, а результаты можно было увидеть только после запекания. Система Enlighten в версии 5.0 добавила возможность предварительного просмотра результата запекания с помощью предварительного расчета GI. Это помогало понять, как будет выглядеть картина отражений, но итоговый результат мог отличаться от промежуточного.

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

Необходимость ждать даже несколько минут, например, при работе с запеченными тенями или с переотраженным светом, мало кому понравится. Это уменьшает число возможных итераций в процессе разработки, накладывает ограничения на качество запеченного освещения. Progressive Lightmapper показывает результат практически сразу. Поначалу детализация невелика, но она стремительно увеличивается непосредственно в режиме Scene View, улучшая качество работы и давая художникам больше свободы.

Статус «превью» мы уберем сразу же, как только система достигнет функциональности, сравнимой с запеканием в Enlighten. Поддержка режимов освещения (Light Modes), запеченных уровней детализации и оптимизация потребления памяти будут реализованы в ближайшее время.

Новые режимы освещения взамен смешанного освещения

Режимы освещения (Light Modes) заменяют смешанный режим освещения, позволяя сочетать запеченное освещение и освещение в реальном времени и легко управлять соответствующими тенями. Мы реализовали несколько вариантов, применимых для самого широкого круга задач, включая освещение полностью в реальном времени, частично запеченное освещение и полностью запеченное освещение. Мы добавили возможность запекать маски теней и получать комбинированные тени, выходящие за пределы прорисовки теней в реальном времени — это значительно повышает производительность благодаря сокращению расстояния рендеринга теней реального времени. Также улучшилось качество картинки, потому что появились тени от далеких объектов и блики, отрисовываемые в реальном времени. Для каждого типа источника света и пути рендеринга добавлена функция затухания тени в реальном времени. Кроме того, мы реализовали бесшовный переход от тени в реальном времени к теневой маске.

Режимы освещения со смешанными источниками света:

  • В режиме запекания отраженного света (Baked Indirect) смешанные источники действуют как динамические источники освещения с дополнительным отраженным светом, получаемым от запеченных карт и Light Probes. За пределами прорисовки тени реального времени, где затенение отсутствует, можно использовать эффекты вроде тумана.

  • В режиме теневой маски (Shadowmask) смешанные источники света просчитываются в реальном времени, а тени от статичных объектов запекаются в текстуру теневой маски и в Light Probes. Тени от динамических объектов прорисовываются с помощью теневых карт в пределах установленной дистанции. Отраженное освещение рассчитывается по информации от запеченных карт и Light Probes. Этот режим значительно снижает количество объектов, требующих рендеринга тени, при этом обеспечивая прорисовку теней, отбрасываемых отдаленными объектами. Тени от статических объектов, падающие на динамические объекты, при этом будут не такими качественными.

  • Режим теневой маски для отдаленных объектов (Distance Shadowmask) — гибридный вариант, обеспечивающий высокое качество теней, падающих на динамические объекты от статических, и запеченных теней за пределами отрисовки реальных теней. Для этого тени, отбрасываемые статичными объектами, рассчитываются по текстуре теневой маски и Light Probes. Тем не менее, в пределах отрисовки теней рендеринг динамических и статических объектов происходит по теневым картам реального времени. За пределами используются запеченные тени, создавая плавный переход. Отраженный свет рассчитывается по запеченным картам и Light Probes.
  • В режиме вычитания (Subtractive) прямой свет запекается в карты освещения, таким образом, статические объекты не будут иметь ярких или глянцевых бликов от смешанного освещения. Динамические же объекты будут освещаться в реальном времени и получать запеченные тени от статических объектов посредством Light Probes. Основной направленный источник света позволяет динамическим объектам отбрасывать на статические объекты реальную тень, получаемую вычитанием.

Еще мы изменили окно настройки освещения, стараясь сделать его удобнее в использовании, и добавили новое окно диспетчера источников света для более удобной работы с освещением.

Поддержка Vulkan – новый уровень производительности графики и экономия заряда для мобильных устройств

Vulkan — это графический API нового поколения, обеспечивающий эффективное использование возможностей современных видеокарт на всех платформах, включая ПК и мобильные устройства.

Он разработан с целью оптимизировать многопоточный рендеринг, что увеличивает скорость рендеринга и снижает потребление ресурсов драйвером и нагрузку на CPU. В целом нам удавалось добиться прироста производительности рендеринг на до 30-60%, и это без необходимости подстраиваться под особенности Vulkan API.

Другое преимущество Vulkan состоит в снижении энергопотребления по сравнению с тем же контентом, но на OpenGL ES. В среднем Vulkan потребляет 88-90% энергии, потребляемой OpenGL ES, что дает 10-12% дополнительного времени игры, как показано в ролике ниже, демонстрирующем энергопотребление по сравнению с OpenGL ES.

Unity 5.6 добавляет поддержку Vulkan для платформ Android, Windows и Linux. Также добавлена предварительная поддержка для OpenVR.

TextMesh Pro теперь бесплатен, планируется интеграция в Unity

На GDC 2017 мы объявили о том, что один из самых популярных ассетов из Unity Asset Store становится бесплатным.

TextMesh Pro используется взамен существующих текстовых компонентов Unity — Text Mesh и UI Text. В TextMesh Pro в качестве механизма рендеринга текста используется Signed Distance Field (SDF), который дает чистый результат при любом кегле и разрешении. Набор собственных шейдеров, раскрывающих мощь алгоритма SDF, позволяет TextMesh Pro динамически менять оформление текста простым изменением свойств материала, добавлением эффекта размытости, контура, мягкой тени, фасок, текстур, свечения и многого другого, а также сохранять и загружать визуальные стили с помощью материалов.

TextMesh Pro дает возможность тонкой настройки текста и форматирования вплоть до интервала между символами, словами, строками и параграфами, поддерживает кернинг и базовую расстановку переносов, а также дополнительные режимы выравнивания по ширине и по краю. Пользователям теперь доступно более 30 тегов Rich Text, включая границы, отступы, настраиваемые стилиссылки и даже поддержку нескольких шрифтов и включение графических элементов в текст.

Мы уже приступили к интеграции функционала TextMesh Pro в Unity 2017 и продолжим поддерживать инструмент, периодически обновляя его по функциональности и совместимости, сохраняя совместимость TextMesh Pro для пользователей.

А пока вы можете загрузить новый и абсолютно бесплатный TextMesh Pro (требуется Unity 5.3 или выше) из Asset Store.

Улучшение графики: GPU Instancing

В 5.6 также добавлен ряд общих улучшений графики, включая улучшения системы частиц и GPU Instancing.

GPU Instancing, который появился в версиях 5.4 и 5.5, позволяет отрисовывать множество экземпляров одной и той же модели с помощью дублирующего (instanced) шейдера за один вызов, при этом позволяя настраивать каждый экземпляр по отдельности, включая положение, поворот и цвет. Когда ваша игра упирается в ресурсы GPU, инстансинг позволяет существенно увеличить производительность. Для того чтобы GPU instancing работал в стандартном шейдере, убедитесь, что в настройках материала отмечен чекбокс Instancing. Поддержку инстансинга для своих шейдеров также можно включить вручную.

В версии 5.6 теперь поддерживается процедурный инстансинг, когда параметры экземпляров берутся из специального источника в шейдере, а не из блоков свойств материала. Также мы добавили новый метод — DrawMeshInstancedIndirect, где аргументы отрисовки берутся из ComputeBuffer. Такой способ рендеринга экземпляров скриптом не дает практически никакой лишней нагрузки на CPU, увеличивая производительность там, где процессор является ограничивающим фактором.

Все подробности описаны в документации.

Улучшения графики: частицы

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

Мы также улучшили процесс работы с несколькими системами.

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

Теперь можно задать число повторов и интервал для импульсов испускания частиц. Раньше каждый импульс можно было запустить только один раз, что ограничивало общее количество импульсов. Благодаря новой системе это количество увеличилось до восьми, и каждый импульс можно повторять сколько угодно.

И наконец, инстанциирование системы частиц в Standalone приложении теперь в два раза быстрее.

Мы добавили средство валидации физических характеристик материалов, позволяющее проверять соответствие значений Albedo и Specular допустимым диапазонам. Значения Albedo также можно проверять по пользовательским диапазонам яркости.

Улучшения графики: compute шейдеры для Metal

В версии 5.6 мы добавили поддержку compute шейдеров для Metal как для iOS, так и для macOS. Как и для других графических API в Unity, compute шейдеры пишутся на HLSL и транслируются в Metal Shading Language (пока только Metal v1.1). Также мы добавили экспериментальную поддержку для использования бэкенда Metal для рендеринга в редакторе. Эта функция по умолчанию отключена, включается она в разделе Edit > Project Settings > Player > Other Settings, где нужно отметить пункт Metal Editor Support.

Новый стек пост-эффектов

Новый стек пост-эффектов Unity (взамен устаревшего Cinematic Image Effects) уже выпущен и доступен для Unity 5.6 (и 5.5). Вы можете скачать новый пакет пост-эффектов в Asset Store совершенно бесплатно.

Этот так называемый uber-эффект сочетает полный набор визуальных эффектов в одном алгоритме постобработки. Такой подход дает следующие преимущества:

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

Стек содержит следующие эффекты:

  • Сглаживание (FXAA, Temporal AA)
  • Мягкие тени
  • Отражения в экранном пространстве (SSR)
  • Туман
  • Глубина резкости
  • Размытие при движении
  • Адаптация глаза
  • Глянцевость
  • Цветокоррекция
  • Пользовательские настройки Lut
  • Хроматические аберрации
  • Зернистость
  • Виньетирование
  • Дизеринг

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

Новый видеоплеер с поддержкой 4k-разрешения
В 5.6 встроен новый видеоплеер, полностью переработанный с заделом на аппаратное декодирование. Теперь можно проигрывать 4k-видео, а также видеофайлы с альфа-каналом. Плеер использует возможности видеоподсистемы как в редакторе, так и на целевых платформах. Он аппаратно поддерживает H.264/AAC на самых различных платформах, а также имеет программную реализацию VP8/Vorbis там, где использование H.264/AAC по тем или иным причинам невозможно. В будущем планируется поддержка других кодеков.

Видеоплеер сделан как обычный компонент для проигрывания видеороликов в сцене. Он позволяет проигрывать 360º видео с аппаратным ускорением. Узнать подробнее о работе видеоплеера можно из доклада на Unite 2016.

NavMesh: улучшение поиска пути и AI

В Unity 5.6 мы реализовали новый низкоуровневый API для NavMesh, в котором устранены ограничения предыдущих версий. Эти изменения открывают целый ряд новых возможностей для геймплея и навигации персонажа и AI. Кроме того, мы добавили четыре новых простых в использовании компонента, доступных на Github.

Возможность использовать инструменты NavMesh для процедурно генерируемого или динамически загружаемого контента — это одна из самых часто запрашиваемых функций Unity. Благодаря функциям Unity 5.6 это не только возможно, но легко и эффективно. Просто загрузите или сгенерируйте сцену, затем запеките поверхность NavMesh.

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

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

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

Новые функции, улучшающие разработку 2D-игр

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

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


Функция сортировки по расстоянию до оси (Axis Distance Sort) устраняет проблемы сортировки по оси Z, позволяя настроить режим прозрачной сортировки (Transparency Sort Mode) на выбранную ось.

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

Представляем режим 9-Slice, двумерная техника для SpriteRenderer, позволяющая несколько раз использовать изображение в разных размерах без необходимости готовить несколько отдельных текстур. Этот функционал аналогичен 9-Slice в UI — здесь можно растягивать или копировать конкретные зоны изображения с изменением размера, что облегчает создание фонов и платформ, экономя память.


И наконец, мы добавили метод EncodeToEXR в Texture2D, который используется для сохранения контента любой HDR-текстуры в файл EXR на диске аналогично EncodeToPNG и EncodeToJPG для текстур без HDR.

Улучшения и новые функции 2D физики

Мы полностью переписали внутреннюю систему обработки контактов для 2D физики, которая теперь предоставляет более правильную информацию о столкновениях, обеспечивая порядок колбэков Enter, Stay и Exit при любых условиях.

Среди множества изменений API двухмерной физики можно выделить следующие:

  • Возможность получить все имеющиеся контакты для Rigidbody2D или Collider2D с возвратом полной информации о контакте, либо только для Collider2D, находящегося в контакте.
  • Новый тип ContactFilter2D, который можно использовать для всех физических запросов. Это позволяет быстро отфильтровать результаты по маске слоя, углу нормали столкновения, глубины Collider2D. Также мы добавили новые неаллоцирующие память варианты существующих функций запросов физики, которые теперь принимают новый ContactFilter2D, например Linecast, Raycast, BoxCast, CircleCast, CapsuleCast, OverlapPoint, OverlapCircle, OverlapBox, OverlapArea, OverlapCapsule, GetContacts и IsTouching. Примеры фильтров: запрос, не касается ли игрок конкретного слоя в конкретном направлении; есть ли у зоны Collider2D контакты с конкретным слоем; есть ли у Rigidbody2D контакты с конкретным направлением.
  • Возможность получать все Collider2D, перекрывающие любые Collider2D в конкретном Rigidbody2D, либо получать информацию о любом перекрытии конкретного Collider2D с помощью новых функций OverlapCollider.
  • Возможность получать информацию обо всех Collider2D, присоединенных в настоящий момент к Rigidbody2D.

Новый компонент данного релиза — CompositeCollider2D, позволяющий совместить BoxCollider2D и PolygonCollider2D (ведется работа по добавлению поддержки других типов) в один комбинированный Collider2D, основанный на полигонах или генерировании контуров (краев). Помимо единой поверхности, создаваемой из нескольких отдельных Collider2D, данное решение существенно сокращает время загрузки сцены с несколькими Collider2D, совмещенными в один. CompositeCollider2D имеет все функции Collider2D: он может иметь свойства материала, быть триггером, использоваться эффекторами и быть присоединенным к Rigidbody2D и т. д.

С помощью новой функции EdgeRadius можно настроить радиус BoxCollider2D или EdgeCollider2D, давая краям возможность расширяться, и кривизну вершины.

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

И наконец, мы полностью переписали код столкновения частиц для двухмерных коллайдеров с помощью новой библиотеки SIMD — теперь обработка столкновений частиц работает гораздо эффективнее, что дает большой прирост производительности (приблизительно в 10 раз). Кроме того, мы добавили новое средство определения перекрытий с двумерным коллайдером, добившись более быстрого и точного отскакивания от места перекрытия.

Регистрация нативных крэшей iOS в Unity Performance Reporting
Unity Performance Reporting автоматически собирает ошибки приложения по устройствам и платформам, позволяя вам и вашей студии находить и устранять ошибки в реальном времени. Теперь Performance Reporting регистрирует нативные крэши и для iOS-игр (например, при падении нативного плагина Objective C) с расширением поддержки платформ в будущем (следующий на очереди — Android!). Для использования Performance Reporting в проекте Unity не требуется никакого кода — просто включите пункт Performance Reporting в окне Services.

Визуализация отладки физики
Иногда сложно сказать, какие объекты в сцене должны сталкиваться, а какие нет, особенно когда сетки Render и Collision не синхронизированы. Для быстрой проверки геометрии столкновений в сцене мы добавили отладочный режим просмотра для геометрии столкновений физики. Он позволяет получить истинную картину физической системы и быстро определить соответствующие коллайдеры в сцене Unity. Также он служит для профилирования, поскольку умеет скрывать все неактивные жесткие тела, а также все вогнутые MeshCollider.

Реализованные функции отталкивания физики и улучшения интерфейса редактора
Мы реализовали две новые явные функции: Physics.ComputePenetration и Physics.ClosestPoint, помогающие создавать пользовательские функции отталкивания при столкновении. Первая возвращает минимальное преобразование, необходимое для разделения двух коллайдеров.

Обратите внимание на розовый луч. Он и выражает смещение, необходимое для отделения сферы от капсулы.
Physics.ClosestPoint вычисляет точку на поверхности данного коллайдера, ближайшую к конкретной точке.

Кроме того, мы привели к единому виду интерактивные элементы для редактирования примитивных 2D и 3D коллайдеров в режиме сцены. Все они теперь используются по одинаковой логике и поддерживают новые клавиши-модификаторы (Shift и Alt), облегчая изменение размеров коллайдера, настройку центральной точки или равномерное увеличение формы из любого направления.

Мы добавили TreeView IMGUI Control, отображающий интерактивное дерево. TreeView можно использовать для создания настраиваемых списков и многоколоночных таблиц для окон редактора, которые можно использовать с другими элементами и компонентами IMGUI. Доступны настройки для рендеринга контента в строке, логики перетаскивания, логики выбора, поиска, сортировки и переименования элементов.

.

Пример TreeView с несколькими столбцами и полем поиска.

Чтобы ознакомиться с новыми компонентами и API, зайдите на сайт документации в раздел Unity Scripting API или посмотрите руководство к TreeView.

Мы оптимизировали потребление памяти данными, отправляемыми на GPU для каждого элемента UI, добавив ‘AdditionalShaderProperties’ в Canvas. Это меняет поведение всех заново создаваемых компонентов Canvas и снижает потребление памяти на рендеринг рабочей области благодаря исключению неиспользуемых каналов.

Если вы используете Visual Studio 2017, вы получите сообщение, что инсталлы с рабочими процессами Unity теперь определяются автоматически, а также показываются и добавляются в список External Script Editor.

Поддержка Google Daydream и Cardboard VR
5.6 нативно поддерживает Google VR для Cardboard на iOS и Android и Daydream на Android. Для оптимизации производительности и быстродействия платформы Daydream мы реализовали еще и поддержку Google VR NDK для настройки асинхронной репроекции и режимов производительности VR-платформы.
По сравнению с поддержкой Daydream в Google VR SDK для Unity, представленной на Google I/O, мы обеспечиваем более последовательный рабочий процесс, существенную оптимизацию и снижение задержек. Для работы не требуется никаких префабов, скриптов или ручной правки файла manifest — просто включите VR и добавьте Daydream в качестве целевой платформы.

Также мы упростили переключение из режима VR в обычный и обратно, что позволит вашим приложениям легко охватывать всю аудиторию Google VR и выходить на рынок Google Cardboard с полной нативной поддержкой. Приложения для Cardboard будут работать на старых устройствах, что увеличит аудиторию. В настоящее время поддержка Cardboard обеспечивается только для Android, поддержка Cardboard для iOS будет готова позже.
Узнать больше о разработке для Google Daydream на Unity можно из презентации Daydream на Unite 2016.

Поддержка Nintendo Switch
Работая в нескольких режимах: как консоль или мобильное устройство, Nintendo Switch предлагает новую возможность геймдизайнерам переосмыслить варианты геймплея. На стенде Unity на GDC было представлено несколько Unity-игр, например, Super Bomberman и Snipperclips, некоторые из которых уже выпущены. Мы рады объявить о поддержке Nintendo Switch (обратите внимание, что в настоящее время платформа поддерживается версией 5.5, поддержка в Unity 5.6 станет доступна с версиями 5.6.x).

Поддержка Facebook Gameroom
Facebook предлагает Gameroom в качестве простого способа доставки высококачественных игр на ПК, использующих весь потенциал процессоров и видеокарт в виде отдельного от новостной ленты приложения.

Unity позволяет создавать проекты для нового приложения Facebook Gameroom для Windows, работающие как нативные приложения, либо для Facebook.com, работающие на базе Unity WebGL.

Все необходимое доступно в Unity сразу после установки: от возможности поделиться контентом с друзьями на Facebook до обработки внутриигровых покупок. Можно даже публиковать сборки на Facebook напрямую из Unity Editor! Дополнительную информацию о Gameroom вы можете найти здесь

Экспериментальная поддержка WebAssembly
5.6 в экспериментальном режиме поддерживает WebAssembly — новую кроссбраузерную технологию, улучшающую работу с Unity WebGL. Несмотря на эпитет «новая», мы считаем, что WebAssembly по сути представляет собой формат байткода для JavaScript-подкласса asm.js (для передачи кода Unity в WebGL используется asm.js). По сравнению с текущим текстовым вариантом, бинарный формат сильно снижает размер кода, скомпилированного в asm.js, ускоряя загрузку кода, и — что важно — давая возможность ускоренного парсинга и компиляции кода с меньшими затратами памяти. Это позволяет сократить время запуска больших игр и снизить объем потребления памяти — оба этих параметра сегодня вызывают больше всего проблем при разработке для WebGL.

Улучшения мультиплеера

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

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

Новые функции Unity Collaborate (бета)

Unity Collaborate облегчает работу студии над проектом, позволяя сохранять, делиться и синхронизировать контент Unity. Каждый может поучаствовать в проекте независимо от местоположения или роли. Система удобнее традиционных систем контроля версий (Git, SVN), поэтому ваша студия будет использовать свое время только на игру!

Мы получили много пожеланий по развитию сервиса от пользователей предыдущих бета-версий и реализовали в версии 5.6 самые популярные из них, например, функцию частичной публикации (Partial Publish), которая позволяет публиковать только выбранные файлы; раньше приходилось публиковать все измененные файлы.

С помощью функции пропуска файлов (Ignore Files) можно исключить файлы и папки проекта, которые не нужны удаленным разработчикам, а функция отката (Rollback) позволяет сделать предыдущую версию последней, что особенно важно для отката нежелательных изменений!

Unity 5.6 завершает цикл Unity 5. Чего ждать в 2017 году?

Прочитайте этот пост, чтобы узнать о Unity 5.6, завершающей цикл Unity 5, и о том, что ожидать от 2017 версии.

Изучите release notes, в которых дана вся информация о новых фичах, изменениях и улучшениях.

Комментарии закрыты.

  1. 5.6 does not complete the cycle — it wrecks it. I am stuck on version 5.5 because 5.6 breaks rigid body interpolation — so weird to break something so fundamental to 3D games programming. The fix is apparently 2017.1 but I have tried beta and it distorts and twists some of my animated models so looks like 5.5.3p3 is the last good build. This unfortunately means that I can not build Android as Vulkan and also that the new IAP won’t work because they require API24 for targetSDK and 5.5.3p3 does not support API 24 — wow after 3 years of work I am so frustrated by this!

  2. Hello.This article was extremely interesting, particularly because I was searching for thoughts on this issue last Thursday.

    http://www.iamsport.org/pg/pages/view/29898202/

  3. Does this mean assets the size of, say, 8×8 wont be blurred by Unity? Or could i already do that and i just never figured it out.

  4. this version have the native support of the nintendo switch?

  5. I actually think they’re doing very well. 5.6 is a huge release and I’m surprised with some of the comments.

    If you want a stable release then you should know by not that a new 5.6 release is going to have them. I would usually work say on unity 5.4.3 or 5.3 even. But this time I took the risk with a live project and I’m not surprised with the little bug here and there. I expect it and take that into consideration. But overall I expected a lot worse.

    Overall impressed with the direction unity is heading. However there are many times when I lose faith and start to look elsewhere.

    I think the everyone at Unity should be celebrating what they’ve managed to pull off.

  6. Are you guys planning on adding in a ShaderForge like system into Unity itself?
    It’s one of the biggest pros of Unreal Engine (The material system) and it’d be nice to see Unity have this sort of thing in-built rather than a «buy this feature from the asset store» kind of approach.

    1. Yep, it’s on our roadmap.

  7. it’s all great, but when the new «tilemap» of experimental branches will be displayed?

  8. Nice post. Thank you for sharing this great information with us. Good explanation in detail that helpful for easily understand for people. It’s wonderful information. This post helpful for me. Thanks for this knowledge.

  9. I am so confused. I needed unity web player for 1 game in facebook gameroom. But everytime I try to get the game installed I get a message: to see JavaScript Console because Unity Player could not load. error being : uncaught: unknown compression method. So I uninstalled the Unity WebPlayer I had before & download the 1 from the Unity site. Still can’t get the game.
    ]

  10. Animator. State entry after dissabled/enabled game object

    After the game object is turned off and on in the animator, the state enty does not work if the loop is off.

    How can I reproduce the problem:
    1. In an empty scene, create a game object (cube or sphere)
    2. Create for him any animation
    3. Turn off the animation loop
    4. Run the game
    5. Wait for the animation to finish
    6. Disable the game object in the inspector
    7. Enable the game object in the inspector
    8. AFTER THIS ANIMATION DOES NOT PLAY!

    Unity 5.5 — everything works correctly

    1. Dang! I have the same problem!

    2. We have a fix for this issue in 5.6.0p1.

  11. Why post procesing stack are not included in Unity?, come on team, you can do this, I love this engine, but I dont like download features that should be included

  12. OK this release looks interesting certainly, hope this cycle is not closed in a rush such happened in 4.x

  13. «Android: When MuteOtherAudioSources option is disabled and there’s no READ_PHONE_STATE permission, the Unity application running on Android 5.1 or older devices might not mute itself during an incoming phone call. This might cause rejections when submitting to Samsung app store.»

    This should be highlighted and honestly I have no idea why this version gets released with known issues like that…

  14. @Unity — What happened? 5.6 final was released prematurely with minimal testing and introducing features before fixing bugs reported 1 or 2 major versions ago! So many MAJOR modules are broken! How can you even call this final?

    https://forum.unity3d.com/threads/disappointed-in-5-6f3-for-not-fixing-major-reported-bugs-since-5-5-pleading-for-a-patch.463906/#post-3018311

    While Unity used to feel like a stable product, something must have shifted last year in management — that’s the only way that could explain this phenomenon. It seems that there’s more concentration on PR than the actual product —: What happened to the «Fix Bugs First» standard? http://wiki.c2.com/?FixBugsFirst

    * While introducing FB Game Room, Unity broke the FB standalone SDK completely for compiled Exes. This is a big deal and has not been properly addressed, to my knowledge — all game devs that use FB can no longer use it unless used with Game Room.
    * While introducing Vulkan, 50% of users crash immediately with a virtual memory access violation exception.
    * The «stuck play button» bug persists constantly, forcing a reset
    * Collab services still taking up all your threads when you startup for a few mins — a «combo bug» with the stuck play button bug.
    * Constant disappearing UI in the editor.
    * UNET …. I won’t get started on it.

    I’m actually fine paying for new versions for new features, however it’s disappointing that this is the «end of the cycle», leaving us with countless bugs — many reported x major versions ago.

    I truly hope you leave patches for bug fixes that should’ve been included in this final release, anyway.

    I’m happy to pay a subscription model for new features — however, when it comes to bug fixes, it just leaves sort of in poor taste to end the dev cycle introducing new features and not fix any of the major bugs first.

    I truly hope management recognizes this and spends an entire major versions *just* fixing bugs before introducing new features. It may not look good on paper or make money, but it’ll pay for itself by having a quality product.

  15. TextMesh Pro omg… THANKS ! Unity built’in TextMesh is such a mess.

  16. how to use transparencySortAxis ?

  17. hello ,
    i’ve been encountering some issue after i updated my unity to 5.6 , the project gets compiled but i get this errors , a lot of them acctually

    «Enabling or adding a Renderer during rendering; this is not allowed. Renderer ‘glow’ will not be added.
    UnityEngine.GameObject:SetActive(Boolean)
    ChunkManager:OnBecameVisible() (at Assets/Scripts/NewScripts/ChunkManager.js:24)
    UnityEditor.DockArea:OnGUI().»
    and
    «Enabling or adding a Renderer during rendering; this is not allowed. Renderer ‘sparckles(Clone)’ will not be added.
    UnityEngine.Object:Instantiate(GameObject, Vector3, Quaternion)
    metal_hit:OnEnable() (at Assets/Scripts/Obstacles/mecanic/metal_hit.js:11)
    UnityEngine.GameObject:SetActive(Boolean)
    ChunkManager:OnBecameVisible() (at Assets/Scripts/NewScripts/ChunkManager.js:24)
    UnityEditor.DockArea:OnGUI()»

    please help

    1. I’d recommend to ask for help in the forum, it’s a way better place for discussions than here.

      Please see the following forum thread for the problem you specifically run into:
      https://forum.unity3d.com/threads/5-6-b9-and-b10-enabling-or-adding-a-renderer-during-rendering-this-is-not-allowed.459522/

      1. thanx a lot , finally a thread about it ,
        i’ve tried on the forum, no luck yet ,
        seams like we have the same issue , the guy thread says that he uses SetActive() inside of OnWillRenderObject() , we use SetActive() inside of OnBecameVisible , but how to fixe this , i didn’t got the answer of the guy from unity and i don’t have permission to post on that thread to ask for clarification , can someone help please

  18. Great update, nice to see you are implementing some of asset store plugins but still no shader editor, shame on you :/ … I realy like Unity (even when droping JS support which was one of main things i like it, im webdev and JS was familiar to me and extremly convenient to use) but without official shader editor it is not able to comete with other engines.

  19. Any ETA for “.NET profile upgrade”? (Please do not mention try-beta-only-for-Editor option; interested in mobile platforms in RTM-version of Unity.)

    1. See «Scripting Runtime Upgrade (Preview)» in the Roadmap under 2017.1

      https://unity3d.com/unity/roadmap

      1. Fantastic news!

        Been waiting for this to show up in a beta for a very long time now :D

        There were very little info about this «preview» available in the roadmap doc though, such as what platforms it applies to etc. but I guess we’ll see when the first beta comes out.

      2. Omfg…. Seriously ? FOR REAL ? string June {get; set;} = «awesome» !

  20. Can we download the samples above?

  21. It seems OSX installer is 800kb, compared to previous version 2.5mb, unable to install…

    1. I’ve installed finely in macOS Sierra (had 5.5.2f1 and now added 5.6.0f3).

      Running 5.6 but could run both side-by-side if I wanted. No installation issues at all, must say.

      What error are you getting? Could you paste the message at least?

      1. I have tried in several machines, the stated download size is 2mb but i only get 800kb for osx download assistant and it get stuck when trying to download, no error, it just won’t start

    2. Hi OSX_ter,
      I confirm the size of the installer for Mac OSX is 868KB. Did you try clicking on it in your downloads?

      1. yes, but it gets stuck every time. I also tried other installers (editor, etc.) with no luck.
        i guess i’ll have to wait :(

  22. Awesome release, back to feature-packed dot releases, reminds me of the good old days of 3.5.
    Congrats, but I only hope you make all those scattered Navmesh components and company across version control (postprocess …etc) built directly into Unity.
    Cheers.

    1. There’s a plan to unify with a package manager that will easily let you select and pull things together per project. So, stay tuned.

  23. Using 5.6.0f1 on linux. It currently breaks Gaia 1.5.3. In new projects.

  24. the new navmesh is awesome, but will I be able to make my character fall from a platform or jump with the new navmesh active?

  25. I wonder whether Nested Prefabs will make it into Unity 2017?
    https://feedback.unity3d.com/suggestions/editor-nested-prefabs

    1. You can follow our Unity Roadmap page here to stay updated on the latest features:
      https://unity3d.com/unity/roadmap

  26. Dear Unity Team.
    When the cave system?

  27. Waiting for to resize just 2 scenes apk from 27mb to 12mb. please any news compress apk in coming version of Unity

  28. This is awesome… but i am going to wait a bit until all of the bugs are ironed out… and hopefully the Lightmapper is not a preview, but a final… same with the timeline which is essential for doing things like cutscenes easily…

  29. Following the documentation for GPU instancing, but when I go to create shader there is no Standard Shader (Instanced) in the list.

    1. That documentation part is outdated. You can just select the standard shader and toggle on enable instancing in the material’s inspector then

    2. I’d venurte that this article has saved me more time than any other.

    3. Yours is a clever way of thikinng about it.

  30. Installed 5.6. took about 5h to re-import everything (why? graphics are the same, can’t you keep the same hashes when you change the version at least for the pictures?)
    Baam! 1000+ allocation warning every seconds, + shader errors, and so on.
    Spent 4 hours removing the scripts and shaders with bugs, but most errors are internal and do not refers to a specific script (lot of errors with particles apparently).
    Press play: wait 5 min nothing happen. Crash.
    Uninstalled, re-installed 5.5f3, re-import for 5h. Waiting.
    Not a release, a beta maybe? Waste of time, embarrassing.

    1. I reply to myself because I cannot edit my post.
      I removed AdvancedFPSCounter and it solved most of my problems.
      Then I forced Vulkan as renderer.
      Pressed Play: +50% speed increase!
      Still have warnings but well done.

      1. How did forced the use of Vulkan?

    2. seems like it’s an april fools joke — to release the beta unity version as a release one
      but personally using unity 5.6.0f1 — no problems so far!

  31. So, Cardboard for IOS is supported or not? For one side:

    «With 5.6, you can seamlessly publish to Facebook Gameroom, as well as Google Daydream and Cardboard for Android and iOS. Nintendo Switch support is also available now.»

    But for the other side:

    «At this time, Cardboard support is exclusive to Android with iOS Cardboard support coming soon.»

    ??

    1. This was an error in the release notes. Cardboard support for iOS is included in 5.6 release. We have removed the erroneous sentence, thanks for pointing it out.

  32. i have bug after installing this update.It no longer works with me.It crushes !!

    1. Any idea please ??

  33. Since I lost my main ticket email for an issue I had and was fixed, but that came back with this latest version, gonna post it here if any at UT can take a look:

    https://issuetracker.unity3d.com/issues/font-created-at-runtime-does-not-show-up-when-added-to-text

    Thanks.

    1. Thanks for the catch.
      Getting a bug fixed in multiple versions has a little latency, and it got caught between the schedule and code bases. It’s already in the mainline for 2017.1, but is in progress to get in 5.6. It missed f3, but we’re working to make sure it lands in patch.

  34. How to download?

  35. vuforia camera still lags if we have more than 1 input fields.
    unable to update project beyong 5.3.6

    1. Vuforia shouldn’t lag. Please report what you’re seeing here https://developer.vuforia.com/forum/ar-technical-discussion/issues-and-bugs — upgrading shouldn’t be an issue either, try explaining the problem on the Vuforia forums.

  36. With these new beta features, comes the sad demise of our Unity Pro perpetual licenses and the degradation our access to Unity services — a pivotal decisive moment for many of us older and loyal studios.

    It has been a wonderful many years. The engine has come a long way (although not far enough). Unfortunately with that, a lot of great stuff has been cut in this journey, including the very reason I bought Pro to begin with. That said if you don’t like the pricing of Unity, wait a few, and I’m sure they will change it all again.

    We’ve reflected on this moment for a long time. And now marks my teams journey into Unreal and CryEngine :). After our hefty license purchases have lost all of their value, I have been given the reason I need to move our game studio over to more powerful and visually attractive engines. I’m not paying the outrageous price, and I’m eager to see what a new age engine is capable of.

    So, with a heavy heart, I say best of luck in the future! And thanks for the strange journey. Here is hoping your retention is better with other long term supporters.

    1. I understand what you are saying, but I must tell you from the beginning: CryEngine V is not «a new age engine». If the package is beautiful it does not mean automatically the contents is of quality also. I have been studying game engine for more that 12 years. I can tell you CryEngine is a frustrating engine, old technology combined with PBR rendering with a new editor that is not fully implemented or transitioned from MFC to Qt.
      Now, Unity 5 and Unreal Engine 4 are a new age engine, both with strengths and weaknesses. I do see them trying to catch up with one another and that is good for everybody in the end.

    2. Does unity have anything to say on the licensing for Edu in 2017.
      Clearly the rolling payments scheme won’t work for us.

      «Yay» for new improvements but a little more vox on the very-quiet subject of license type transition for edu would be much appreciated. Can’t find anything.

      The devil you know Ed. Good fortune though.

    3. Superb inaotmfrion here, ol’e chap; keep burning the midnight oil.

  37. Hm, time for me to drop 2D Toolkit I’m wondering???
    Thoughts?

    1. Depends on what you use it for. I think Tilemaps are the only feature Unity isn’t providing now. I moved pretty much to Unity’s 2D tools for most things.

  38. The new Physics functions will make things much easier, thanks for that!
    All that I really need now is access to the C# job system y’all talked about… Or some other way to make massive amounts of raycasts per FixedUpdate.

    1. I haven’t heard of this Job system and couldn’t find any information on it. Do you still happen to have a link on it?

      1. You can see more about the C# jobs system in the Unite ’16 Los Angeles keynote. It’s too early for us to commit to a release date, but we’re hard at work on it.

  39. I may just be stupid but where is the switch support, is it coming later? i was under the impression that it was in the current 5.6 build. again i may just be stupid but any help or info is appreciated .

    1. It says Switch support isn’t coming to 5.6 until a later update in the 5.6.x cycle. Currently Switch support is only in 5.5 (and you need Nintendo do’s dev kit to get access to it),

      1. The job system is supposed to come in the 2017.x release cycle. Joachim has been talking about it at every keynote in the last year: https://www.youtube.com/watch?v=lHoRY0Mi3kA

        1. Thanks! Also.. I miss your show, dude. It was great. :)

  40. What are the chances of getting the tilemap editor in a point release for 5.6? This was the one feature I was looking forward specifically and I’d love to have it as part of my perpetual pro license.

    1. New features are very unlikely to be part of a point release.

  41. Do not have the option of torrent to download?

    1. We currently having issues publishing our version to our torrent server. You can use the other links or wait a few days for it to be available.

  42. I love it!

  43. So the 2D level editor that was promised is not being released? What a let down.

    1. There’s a bunch of 2D improvements in 5.6, as you can see above, but if you’re talking specifically about the Tilemapper: no, sorry, it’s not quite ready yet. Believe me, we would love to see it released as much as you would, but we shouldn’t rush it and compromise on quality.

  44. i want blueprint system (visual scripting) in unity3d

  45. My project (~500 lines c# code, no custom shaders, no external assets) ran fine with 5.5. Upgraded to 5.6, pressed Play and did nothing else before or after. Unity Editor not responding, Windows shuts down editor. Every time.

    Well, that doesn’t look so good.

    1. Could you fire up the Unity Bug Reporter tool and send us a bug report, with your project attached?

  46. My project (~500 lines c# code, no custom shaders, no external assets) ran fine with 5.5. Upgraded to 5.6, pressed Play and did nothing else. Unity Editor not responding, Windows shuts down editor every time.

    Well, that doesn’t look so good.

    1. Take out the 500 line of code from the project and look if is that, that triggers the crash.

  47. So so stable .. Good version

  48. The «Experimental support for WebAssembly » could mean more compatibility to run WebGL builds on mobile devices? Or this is still inviable?

    1. Webassembly will come to mobile browsers too in the future. It will improve some aspects of running Unity WebGL content the same way it will on desktop.
      It is not a miracle feature that will magically make everything work no matter what.

  49. How do I upgrade from 5.5 to 5.6? Just download the installer like it was a fresh install?

    1. Yep! You can even install it side-by-side with Unity 5.5 if you want — just install it to a different folder.

      1. Such an imrevssipe answer! You’ve beaten us all with that!

    2. Aprtpciaeion for this information is over 9000-thank you!

  50. Great stuff!

  51. linux build?

    1. You can always find the latest Unity Editor for Linux at the end of the Unity on Linux forum thread. Current version is 5.6.0f1.

  52. Great work!

  53. Super awesome guys, great work! Did you all happen to fix the bug where a Vulkan build on Linux just crashes due to missing unity files?

    https://fogbugz.unity3d.com/default.asp?894318_t2urddj83u6m06f3

    One additional bit that could be added to the report is for the API to have only Vulkan in it so that it won’t fallback to Open GL, it’ll just crash.

    Thanks! :)

  54. Will the new NavMesh components ever be included in Unity by standard so you don’t have to download it from GitHub?

    1. That’s definitely the plan.

  55. Can we get an update on network rendering, I’m tired of 12 hour light map generation times :'(

    1. Charles Beauchemin

      Март 31, 2017 в 8:33 пп

      Hi Matt,
      Are you talking about Cloud Build? You can see all the info here: https://unity3d.com/services/cloud-build

      1. I think he is talking about being able to use a network of computers to perform light map baking. Splitting up the job and returning the results. I think you guys had an experimental video about it awhile back

      2. No, he does not.
        He means distributed light baking with several connected machines in the network, as Unreal does it with Lightmass Swarm baking.
        There has been a video about some hack-week result, showing that unity in fact was able to do something similar about 2 years ago, but no one cared to develop it further, despite the apparent need of the community, who’s been asking for it ever since…

        The new progressive light baker looks like a big improvement compared to the arbitrary baking progress of enlighten, but it would do well with the ability to work with distributed rendering across network machines as well. Imagine the possibilities, if you could just hook up your render nodes/remaining workstations to create the last high quality build before shipping in a fracture of the time….that would be…up-to-date…

        1. @TYLER COOK

          Sorry…comment was meant for CHARLES BEAUCHEMIN obviously ;)

  56. Oh dang, and there’s Switch support coming out as well. The hype is real!