- New features and updates for programmers
- Набор средств Visual Studio для Unity Visual Studio Tools for Unity
- Обзор Overview
- Совместимость с Visual Studio Community в Windows и macOS и объединение с Unity Compatible with Visual Studio Community on Windows and macOS and bundled with Unity
- IntelliSense для сообщений Unity IntelliSense for Unity messages
- Расширенные возможности отладки Superior debugging
- Интегрированные предложения для получения рекомендаций и аналитических сведений о производительности Integrated suggestions for best practices and performance insights
- Поддержка CodeLens для скриптов и сообщений Unity CodeLens support for Unity scripts and messages
- Оптимизированное представление всех скриптов в соответствии с Unity Optimized view of all your scripts to match Unity
- Unity 2019.3
- Познакомьтесь с новыми функциями
New features and updates for programmers
Learn what’s new for developers in Unity 2019.3, including major updates to DOTS, improved version control, Configurable Enter Play Mode, serialization improvements, Physics updates and more.
Here’s an overview of the key updates for programmer tools. For full details, see the release notes.
Write less boilerplate code with the new versions of our DOTS packages. Replace custom authoring components by a simple [GenerateAuthoringComponent] attribute, and replace those verbose IJobForEach and IJobForEachWithEntity constructs with the simpler-but-just-as-fast Entities.ForEach(), which now uses the Burst Compiler and the C# Job System.
To get started writing DOTS code the new way, install the Entities package (Preview) from the Package Manager.
The new SerializeReference attribute lets you serialize C# classes as references instead of as value types. This means you can have POCOs (plain old C# objects) referencing each other, simplifying the code to express and manage complex data structures like graphs and trees.
It also offers support so fields can contain polymorphic data. For example, a list of type List can contain dogs (class Dog : IAnimal<>) and cats (class Cat : IAnimal<>).
Fields marked for serialization as references can now express null values intrinsically. Previously, serializing a null field would always deserialize it using the default constructor of that type.
Serialization of non-Unity types has traditionally ignored polymorphism. In Unity 2019.3, polymorphic serialization allows you to maintain object references that didn’t previously survive the serialization process, and more correctly reference the inheritance chain.
Currently, when you enter Play Mode in the Editor, Unity does two things: it resets the scripting states (Domain Reload) and reloads the Scene. This takes time, and when your project gets more complex, Unity Editor can be slow to enter Play Mode. That’s why we’re introducing Configurable Enter Play Mode (Experimental) in Project Settings > Editor > Enter Play Mode options.
These options allow you to disable domain and/or scene reloading from the Enter Play Mode process when there are no code changes. Based on our test results, changing these settings can save you 50-90% of iteration time, depending on your project.
Check out How to configure Play Mode in the documentation for more details on how to modify your scripts correctly when you’ve disabled Domain Reload.
You can also access this feature through an API and a Callback if you want to reset the game state before entering Play Mode.
This feature is currently experimental, and we’re looking forward to hearing what you think on the forum.
We have upgraded the PhysX library from v3.4 to v4.1. This includes the new Temporal Gauss-Seidel solver, which allows joints to be more resistant to overstretch and prevents some erratic behavior previously seen during simulation. To enable the new solver, go to Project Settings > Physics.
We have also exposed the new broad-phase Automatic Box Pruning algorithm, which can compute the world boundaries and the number of subdivisions automatically. This is an upgrade from the existing Multi-Box Pruning algorithm.
Additionally, a faster mesh mid-phase algorithm is available on desktop platforms. It doesn’t require resource-intensive acceleration structures to be built (R-Trees), which is useful for runtime-generated content because the MeshCollider instantiation time will be reduced.
We’ve also added a new API to allow delayed baking of meshes for MeshCollider. You can hide the computationally intense mesh-baking process behind a loading screen or transition scenes, like a dialog scene in an adventure game. This API is thread-safe, so you can call the function from off the main thread, including via the C# Job System, to bake multiple meshes at the same time.
For more information, see the section “Migrating from PhysX SDK 3.4 to 4.0” in NVIDIA’s PhysX 4.1 SDK Guide.
Before 2019.3, when investigating performance through the Profiler Window, you were able to see profile data from 300 frames at a time. That didn’t always give you enough time to catch the frames you really care about.
Configurable frame count allows you to extend that capture window. In the Preferences window, you can now configure the number of frames (300–2000) you want the Profiler window to show.
With this update you can enable Deep Profiling Support for all Players in the Build Window or with BuildPlayer API.
When you build a Player with Deep Profiling Support, you’re able to record timestamps when entering and exiting C# methods. However, this C# instrumentation might come with a performance overhead, so we added the option to toggle it off per Player.
Managed allocations tracking and analysis is an important feature of Unity’s Profiler.
Continuous managed allocation causes garbage collection (GC) to kick in and disrupt smooth gameplay with multiframe delay. Knowing when allocations happen as well as their origin in the code is essential information when developing games with Unity.
In 2019.3 we introduce call stacks for managed allocations in Players. This allows you to see the C# function where a GC allocation is coming from when profiling Players.
The option can be enabled with the Call Stacks toggle.
Unity 2019.3 also includes an overhaul of our version control support.
This includes a number of UX and integration improvements and fixes for our Perforce integration, like automatic reconnect attempt if a Perforce connection is lost.
A Version Control bar is now available at the top of the Inspector window, letting you do additional operations like Add, Lock, Unlock, and Submit, among other improvements.
Also, in the Inspector for non-checked-out assets, you can now right-click to copy the values of disabled Inspector fields.
Check the release notes for more detail on all the UI improvements and fixes.
This release includes the new Addressable Asset System (i.e., Addressables), which gives you an easy way to load assets by “address,” while also handling asset management overhead by simplifying content pack creation and deployment. In short, Addressables lets your team efficiently manage complex live content.
The FPS Netcode used in the DOTS Sample is built on top of DOTS and makes it easy to create a networked game with similar architecture. It includes client-side prediction, authoritative server, interpolation, and lag compensation.
Get an introduction to FPS Netcode from Tim Johansson’s Unite talk.
Набор средств Visual Studio для Unity Visual Studio Tools for Unity
Обзор Overview
Инструменты Visual Studio для Unity представляют собой бесплатное расширение Visual Studio, которое превращает Visual Studio в мощное средство для разработки кроссплатформенных игр и приложений с помощью платформы Unity. Visual Studio Tools for Unity is a free Visual Studio extension that turns Visual Studio into a powerful tool for developing cross-platform games and apps with Unity.
Редактор Unity отлично подходит для объединения вашей игровой среды, но непосредственно в нем создавать код нельзя. While the Unity editor is great for putting your game world together, you can’t write your code in it. Благодаря набору средств Инструментов Visual Studio для Unity можно использовать знакомые возможности среды Visual Studio редактирования, отладки и повышения производительности кода, чтобы создавать редактор и игровые скрипты для проекта Unity на C#, а также отлаживать их с помощью мощных средств отладки Visual Studio. With Visual Studio Tools for Unity, you can use the familiar code editing, debugging and productivity features of Visual Studio to create editor and game scripts for your Unity project using C#, and you can debug them using Visual Studio’s powerful debugging capabilities.
Однако набор средств Visual Studio Tools для Unity не ограничивается только вышеперечисленным. Он также тесно интегрирован с редактором Unity, что позволяет тратить меньше времени на выполнение простых задач, обеспечивает повышение производительности, характерное для Unity, а также делает очень удобной работу с документацией по Unity. But Visual Studio Tools for Unity is more than that; it also has deep integration with Unity editor so that you’ll spend less time switching back and forth to do simple tasks, provides Unity-specific productivity enhancements, and puts the Unity documentation at your fingertips.
Совместимость с Visual Studio Community в Windows и macOS и объединение с Unity Compatible with Visual Studio Community on Windows and macOS and bundled with Unity
Visual Studio и Visual Studio для Mac Community доступна бесплатно и входит в пакет установки Unity. Visual Studio and Visual Studio for Mac Community is available for free, and is bundled with Unity installs. Дополнительные сведения об установке и настройке см. в статье Начало работы с инструментами Visual Studio для Unity. Visit the Visual Studio Tools for Unity getting started documentation for more information about installation and setup.
IntelliSense для сообщений Unity IntelliSense for Unity messages
Автозавершение кода IntelliSense позволяет легко и просто реализовать сообщения Unity API, например OnCollisionEnter , включая их параметры. IntelliSense code-completion makes it fast and easy to implement Unity API messages like OnCollisionEnter , including their parameters.
Расширенные возможности отладки Superior debugging
Инструменты Visual Studio для Unity поддерживают надежные функции отладки, характерные для Visual Studio: Visual Studio Tools for Unity supports the robust debugging features that you expect from Visual Studio:
- Задавайте точки останова, включая условные. Set breakpoints, including conditional breakpoints.
- Оценивайте сложные выражения в окне «Контрольные значения». Evaluate complex expressions in the Watch window.
- Проверяйте и изменяйте значения переменных и аргументов. Inspect and modify the value of variables and arguments.
- Детализируйте сложные объекты и структуры данных. Drill down into complex objects and data structures.
Интегрированные предложения для получения рекомендаций и аналитических сведений о производительности Integrated suggestions for best practices and performance insights
Напишите эффективный код, сочетающий в себе лучшие методики и глубокое понимание проектов Unity Visual Studio. Write better code that captures the best practices with Visual Studio’s deep understanding of Unity projects.
Поддержка CodeLens для скриптов и сообщений Unity CodeLens support for Unity scripts and messages
Функции скриптов и сообщений Unity снабжены указаниями, упрощающими распознавание данных, предоставляемых Unity, и вашего кода. Unity scripts and message functions are decorated with hints to make it easier to recognize what’s provided by Unity and what’s your code.
Поддержка CodeLens реализована в Visual Studio версии 2019. CodeLens support is available in Visual Studio 2019.
Оптимизированное представление всех скриптов в соответствии с Unity Optimized view of all your scripts to match Unity
Обозреватель проектов Unity (UPE) — это альтернативный способ просмотра файлов проекта по сравнению со стандартным обозревателем решений. The Unity Project Explorer (UPE) is an alternative way to view you project files over the standard Solution Explorer. UPE фильтрует указанные файлы и представляет их в иерархии, соответствующей Unity (Вид > Обозреватель проектов Unity в Visual Studio 2019). The UPE filters the files shown and presents them in a hierarchy that matches Unity (View > Unity Project Explorer in Visual Studio 2019).
Обозреватель проектов Unity доступен в Visual Studio 2019. The Unity Project Explorer is available in Visual Studio 2019. В Visual Studio для Mac Панель решения имеет аналогичное поведение по умолчанию для проектов Unity. Дополнительные представления не требуются. In Visual Studio for Mac, the Solution Pad has similar behaviour by default for Unity projects — no additional views are required.
Unity 2019.3
Новейший выпуск 2019 года c новым интерфейсом, новой системой ввода и готовыми к коммерческому использованию процессом рендеринга высокого разрешения (HDRP) и Visual Effect Graph. Кроме того, в новом выпуске Unity появилась система трассировки лучей, а также множество проверенных инструментов для 2D-графики, примеры проектов, пакеты на базе DOTS и многое другое.
Независимо от сферы вашей деятельности — будь то игры, кино и развлечения, архитектура или любая другая отрасль, использующая технологии 2D или 3D реального времени — вы найдете много интересного в выпуске 2019.3.
Новейший выпуск технологического цикла Unity 2019 обеспечивает прирост производительности, богатство визуальных эффектов, дополнительные художественные возможности и повышенное удобство для художников, дизайнеров, программистов.
Здесь вы узнаете подробности выпуска Unity 2019.3, сможете просмотреть видео, доклады, документацию и многое другое, что поможет вам начать работу.
Познакомьтесь с новыми функциями
Инструменты для художников и дизайнеров
Узнайте о новинках Unity 2019.3 для художников и дизайнеров, включая готовые решения для 2D-графики, поддержку Animation Rigging в Timeline, обновления системы ландшафта, пресеты и новый упрощенный процесс перехода на DOTS.
Инструменты для программистов
Узнайте о новинках Unity 2019.3 для программистов, включая крупные обновления DOTS, улучшения для систем управления версиями, инструменты профилирования, сериализация, а также настраиваемый вход в игровой режим, обновления физики и многое другое.
Рабочие процессы в редакторе, улучшения для совместной работы
Редактор Unity получил обновленный интерфейс, а поле быстрого поиска поможет вам найти все, что угодно. Кроме того, мы добавили предварительную версию инструмента UI Builder. Экономьте время на импорте ассетов и смене платформ благодаря Asset Import Pipeline, включенному по умолчанию для новых проектов.
Платформы
Узнайте о новинках поддержки платформ в Unity 2019.3. Мы добавили поддержку Google Stadia, обновили AR Foundation, добавили инструменты для разработчиков мобильных и VR-приложений, новую систему ввода и многое другое.
Графика
В Unity 2019.3 была проведена работа над обновлением графики, а High Definition Render Pipeline (HDRP) и Visual Effect Graph теперь готовы к профессиональному использованию. Система трассировки лучей в реальном времени находится в статусе предварительной версии, а вот Universal Render Pipeline, Shader Graph, системы ландшафта и освещения были значительно улучшены.
DOTS и пример проекта на DOTS
Пример проекта на базе DOTS демонстрирует взаимодействие новых пакетов DOTS в многопользовательском шутере, включая обновленные пакеты DOTS Game Code, DOTS Netcode, Conversion Workflow, Unity Live Link и другие.
The Heretic — это короткометражка от завоевавшей множество наград команды разработки демонстраций Unity, авторов Adam и Book of the Dead. Первая часть проекта была показана на GDC 2019, где она продемонстрировала производительность 30 кадров в секунду при разрешении 1440p на ПК потребительского класса. Раннюю предварительную версию второй части мы показывали на Unite Copenhagen 2019.
The Heretic создана на Unity 2019.3, использует множество графических возможностей выпуска, включая все аспекты HDRP и Visual Effect Graph. Познакомьтесь с новым персонажем, созданным полностью на основе VFX в полнометражной версии фильма.
Скоро станет доступна версия Unity с долгосрочной поддержкой (LTS). Если вы хотите максимизировать стабильность, используя в работе конкретную версию Unity, то мы рекомендуем вам Unity 2018.4 LTS.
Версия LTS не включает в себя каких-либо новых функций, изменений API или улучшений. Это просто продолжение технологического потока 2018 года с обновлениями и исправлениями. Поэтому мы называем ее 2018.4, а версия технологического потока этого года началась с 2019.1, затем перешла к обозначению 2019.2, а сейчас доросла до 2019.3. Вместе с выпуском 2020.1, запланированным на весну 2020 года, будет также выпущена Unity 2019.4 LTS.
Завершив работы над последним выпуском технологического цикла Unity в 2019 году, мы рады объявить о планах на 2020 год. По мере выпуска новых возможностей в форме пакетов мы изменяем график выпуска ключевых обновлений в 2020 году до двух обновлений технологического потока, а выпуск LTS запланирован в начале 2021 года. Полный выпуск Unity 2020.1 запланирован на весну 2020, а полный выпуск 2020.2 — на осень 2020 года. Мы продолжим выпускать промежуточные обновления с исправлениями неполадок так же часто, как и сейчас.
Многие уже имеющиеся и только запланированные функции Unity доступны в виде пакетов, которые вы можете загрузить с помощью пакетного менеджера в редакторе.
Предварительные версии пакетов открывают вам ранний доступ к новым функциям и улучшениям. Однако, мы не рекомендуем использовать их для проектов, уже находящихся в разработке. Работа над ними не закончена, и эти пакеты могут содержать ошибки.
Авторизованные пакеты прошли дополнительную проверку и безопасно работают с конкретной версией Unity и всеми другими пакетами, подтвержденными для этой версии.
Версии технологического потока предназначены для разработчиков, желающих получить доступ к новейшим функциям и возможностям. В этом году выйдет три крупные версии технологического потока (2019.1, 2019.2 и 2019.3). Каждую неделю мы обновляем и устраняем ошибки текущей версии технологического потока до официального выхода следующей версии технологического потока, после чего цикл повторяется.
Последняя версия технологического потока года становится версией с долгосрочной поддержкой (LTS) и получает поддержку в течение следующих 2 лет. Если говорить о названии версии, то мы увеличиваем обозначение последней версии технологического потока года на единицу и добавляем обозначение «LTS». Например, версия 2018.3 технологического потока станет версией 2018.4 LTS.
В отличие от технологического потока, поток LTS не получает никаких новых функций, изменений или улучшений API. Вместо этого все обновления фокусируются на устранении ошибок и причин их повторного появления, проблемах, затрагивающих все сообщество, ошибках консоли SDK/XDK и любых других крупных проблемах, которые могут помешать большому количеству разработчиков выпустить их игры или приложения.
Версии LTS получают обновления каждые две недели. Поток LTS предназначен для разработчиков, которые хотят разрабатывать и выпускать свои игры/приложения на самой стабильной версии.
Если процесс разработки уже идет или вы близки к выпуску продукта, мы рекомендуем последнюю версию LTS. Если вы хотите использовать в своем проекте новейший функционал Unity или только начинаете разработку, мы рекомендуем версию технологического потока.
Мы планируем выпустить Unity 2020.1 весной 2020 года.
Альфа-версии предлагают быстрейший доступ к новым функциям, которые мы добавляем каждую неделю альфа-цикла до даты прекращения внедрения функционала. Эти версии менее стабильны, чем бета-версии. В случае альфа- и бета-версии вы можете влиять на процесс разработки, испытывая новые функции и присылая нам свои отзывы через форум и отчеты об ошибках.
Так как ранние версии могут содержать нестабильные функции, мы не рекомендуем использовать их для проектов, находящихся в разработке, и советуем делать резервные копии ваших проектов перед их открытием в альфа- или бета-версии Unity.
Альфа- и бета-версии доступны всем, предварительная запись не нужна. Начните работу, загрузив их в Unity Hub.