Примечание. Следуйте советам в этом разделе в порядке выпуска. Например, если вам нужно обновить проект с версии 2018 до версии 2020, прочтите руководства по обновлению версии 2019, чтобы узнать, есть ли какие-либо изменения, которые вам нужно внести, прежде чем читать руководства по обновлению версии 2020.
На этой странице перечислены изменения в Unity 2018 LTS, которые могут повлиять на существующие проекты при обновлении с версии Unity 2017.
Обратите внимание, что 2018 LTS также известен как 2018.4.
Контур страницы
- Улучшенные префабы
- Расширение USS flex теперь соответствует стандарту CSS
- Поддержка регистрации необработанных исключений в управляемых пользовательских цепочках
- Переменная шейдера VFACE теперь инвертирована в DirectX (11 и 12)
- PhysX обновлен с 3.3.1 до 3.4.2
- Свойство AssetBundle.mainAsset помечено как устаревшее
- Обновление проектов, использующих компоненты NavMesh
- Исправлены ошибки системы частиц
- Обновление компилятора C# до Roslyn
- Компилятор скриптов UnityScript и Boo удален
- Воспроизведение Animator Root Motion изменилось
- Изменения в UIElements.ContextualMenu
- Сетевая игра: устаревшие сетевые API удалены (на основе RakNet)
- Импорт файла данных Photoshop (PSD) с использованием прозрачности
- Корутины, возвращенные из MonoBehaviour, когда его GameObject отключен или уничтожен, больше не запускаются
- API BuildPipeline теперь возвращают объект BuildReport вместо строки
- Уведомления о выходе игрока заменены с сообщений на события
- Прекращение поддержки AvatarBuilder.BuildHumanAvatar на платформе .NET
- TouchScreenKeyboard.wasCanceled и TouchScreenKeyboard.done устарели
- MonoDevelop 5.9.6 удален из установщиков Unity, и его поддержка в Unity прекращена
- Интерфейсы обратного вызова BuildPipeline теперь принимают объект BuildReport
- Ресурсы, расположенные в папках плагинов, больше не будут импортироваться через специализированные импортеры
- Частицы Particle System Mesh неправильно применяли значение Pivot Offset
- Инстансирование GPU поддерживает глобальное освещение
- Обработка значений по умолчанию функций рисования и размера
- Компиляция небезопасного кода C# в редакторе Unity теперь требует включения параметра
- Каталог UnityPackageManager переименован в Packages
Улучшенные префабы
-
ПрефабыТип ресурса, позволяющий хранить игровой объект с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов в сцене. Подробнее
См. в Словарь автоматическое обновление до новая система префабов. - Для поддержки вложенных сборных элементов рабочий процесс префабов был изменен. Чтобы редактировать префабы, теперь вам нужно открыть их в режиме префабов. Вы больше не можете редактировать префабы в Диспетчере проектов.
- Вы также вносите структурные изменения в Prefab Mode, такие как удаление GameObjectsфундаментального объекта в сценах Unity, который может представлять персонажей. , реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь, изменение родителя игровых объектов или замена Transform на RectTransform. Кроме того, вы можете распаковать экземпляр Prefab, если хотите полностью удалить его ссылку на свой Prefab Asset и, таким образом, иметь возможность реструктурировать результирующие простые игровые объекты по мере необходимости. Вы больше не можете отключить экземпляр Prefab. - Инструмент редактора, который создает игровые объекты, должен использовать ObjectFactory.CreateGameObject, чтобы убедиться, что игровой объект попадает в префаб СценаСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
Посмотрите в Словарь, редактируется ли сборный ресурс в данный момент в Prefab Mode. - В качестве меры предосторожности скриптыфрагмент кода, позволяющий создавать собственные компоненты, запускать игровые события, изменять Свойства компонента с течением времени и реагировать на ввод пользователя любым удобным для вас способом. Подробнее
See in Словарь с атрибутом [ExecuteInEditMode] приводит к выходу редактора из Prefab Mode при переходе в игровой режим, если какой-либо скрипт в открытом префабе имеет этот атрибут. Подробнее о том, как сделать такие сценарии совместимыми с Prefab Mode, см. на страницах Справочника по сценариям для ExecuteInEditMode и в новом ExecuteAlways. - Больше невозможно вносить произвольные изменения в ресурсы-префабы из скриптов, поскольку теперь они являются импортируемыми ресурсами. Вместо этого вам нужно использовать PrefabUtility.LoadPrefabContents, PrefabUtility.SaveAsPrefabAsset. и PrefabUtility.UnloadPrefabContents.
- Если вы используете AssetDatabase.AddObjectToAsset для добавления дополнительных ресурсов в префабы, теперь вы должны вызвать PrefabUtility.SavePrefabAsset после добавления необходимых объектов.
Расширение USS flex теперь соответствует стандарту CSS
- Директива USS flex теперь принимает до трех параметров, представляющих
flex-grow
,flex-shrink
игибкая основа
. Параметры flex-shrink и flex-basis являются необязательными. Если этот параметр опущен, для flex-basis по умолчанию используется значение 0, а для flex-shrink — значение 1. - До версии 2018.3
flex: N
был эквивалентенflex N 0 auto
. Теперь это соответствует стандарту CSS, делая его эквивалентнымflex: N 1 0
. Чтобы сохранить старую семантику, вам следует заменить все директивыflex: N
наflex: N 0 auto
в ваших файлах USS.
Поддержка регистрации необработанных исключений в управляемых пользовательских цепочках
- До версии 2018.3 редактор Unity не регистрировал необработанные исключения, возникающие в управляемых пользовательских потоках. Начиная с версии 2018.3 необработанные исключения, возникающие в управляемых пользовательских потоках, регистрируются в консоли редактора Unity.
- Поскольку ведение журнала теперь включает все управляемые пользовательские потоки, вы можете увидеть исключения, которые всегда создавались в ваших проектах, но до сих пор никогда не выводились на консоль.
Переменная шейдера VFACE теперь инвертирована в DirectX (11 и 12)
- шейдер VFACEПрограмма, работающая на графическом процессоре. Подробнее
См. в Словарь, переменная не согласована между DirectX и другими графические API при рендерингеПроцесс вывода графики на экран (или в текстуру рендеринга). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь к cubemapНабор из шести квадратных текстур, которые могут представлять отражения в окружающей среде или небоскреб, нарисованный позади вашей геометрии. Шесть квадратов образуют грани воображаемого куба, окружающего объект; каждая грань представляет вид по направлениям мировых осей (вверх, вниз, влево, вправо, вперед и назад). Подробнее
См. в Словарь. Теперь у него такое же поведение. - Если вы используете логическую переменную шейдера VFACE в шейдере DirectX для рендеринга кубической карты, вам нужно изменить логику в коде.
- См. Идентификатор проблемы: 1027670.
Обновлен PhysX с 3.3.1 до 3.4.2
Физическое поведение изменилось, и некоторые проекты могут вести себя по-другому в новой версии. В частности:
- Пакеты контактов теперь содержат до 6 контактов в режиме Persistent Contact Manifold. Это увеличение по сравнению с 5 контактами на патч в предыдущих версиях. Есть новый код, который объединяет патчи в коллекторе, и новый код, который выбирает контакты. CollisionСтолкновение происходит, когда физический движок обнаруживает, что коллайдеры двух игровых объектов соприкасаются или перекрываются, когда хотя бы один из них имеет Rigidbody компонент и находится в движении. Подробнее
See in Словарь стал намного точнее, чем раньше. Возможно, вам придется работать над проектами, в которых используется определенное расположение контактов, чтобы сделать их совместимыми с новым кодом. Скорее всего, вы заметите это, когда выпуклые тела сталкиваются с сетками и примитивами. - Для вычисления контактов с местностью теперь используется новый алгоритм. Раньше это было в специальном регистре, но теперь это тот же примитивный код сетки, который используется с MeshColliders. Он надежный, более точный и хорошо работает. Однако он не поддерживает TerrainData.thickness, что означает, что эффект туннелирования с ландшафтами теперь возможен. Чтобы избежать этого, вам необходимо включить непрерывное обнаружение столкновенийАвтоматический процесс, выполняемый Unity, который определяет, является ли движущийся GameObject с Rigidbody и компонент коллайдера вступил в контакт с какими-либо другими коллайдерами. Подробнее
См. в Словарь о быстро движущихся объектах. До этого, если было обнаружено, что тело находится не глубже, чем TerrainData.thickness под terrainландшафтом в вашей сцене. Игровой объект Terrain добавляет в вашу сцену большую плоскую плоскость, и вы можете использовать окно Terrain Inspector для создания подробного ландшафта. Подробнее
См. в Словарь, он всплывал автоматически, но нормали никогда не были правильными . Чтобы вернуться к старому поведению, снимите флажок Включить унифицированные карты высот в настройках физики. -
Отрицательная сеткаОсновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее
Масштабирование See in Словарь больше не приводит непосредственно к запеканию сетки в все случаи. Вогнутые сетки больше не запекаются. Тем не менее, для запекания выпуклых сеток по-прежнему необходимо масштабирование. С этим изменением отрицательное масштабирование инвертирует нормали сетки, когда scale.x * scale.y * scale.z < 0. Кроме того, нетривиальные масштабы, такие как наклон и сдвиг, по-прежнему должны быть запечены, как и раньше. - Раздувание выпуклой сетки устарело, поскольку кажется, что оно не требуется для нового алгоритма вычисления выпуклой оболочки (Quickhull), который более терпим ко всем видам несовершенств входной сетки.
Свойство AssetBundle.mainAsset помечено как устаревшее
- В версиях Unity до 5.0 пользователям приходилось создавать пакеты ресурсов с помощью AssetBundleBuildAssetBundle API, что требовало предоставления объекта, который будет возвращаться при загрузке с использованием свойства mainAsset AssetBundle.
- API AssetBundle.BuildAssetBundle был помечен как устаревший в Unity 5.0 и заменен на AssetBundle.BuildAssetBundles, что изменило способ получения ресурсов из AssetBundle.
- Теперь вам нужно получить имя объекта или путь с помощью AssetBundle.LoadAsset API, чтобы получить контент из AssetBundle. См. документацию по созданию пакетов AssetBundle, собственному использованию пакетов AssetBundle и API сценариев AssetBundle.
Обновление проектов, использующих компоненты NavMesh
- Если вы перемещаете проект из версии 2018.2 или более ранней в версию 2018.3b и в нем используется NavMeshсетка, которую Unity создает для аппроксимации пешеходные зоны и препятствия в вашей среде для поиска пути и навигации под управлением ИИ. Подробнее
Посмотрите в Словарь компоненты, полученные из репозитория Unity на GitHub, теперь вам нужно использовать это филиал.
Исправлены ошибки системы частиц
В Unity 2018.3 исправлены некоторые ошибки с частицами, которые могут повлиять на ваши проекты, созданные в предыдущей версии.
- При использовании неравномерного масштаба преобразования на рекламном щитетекстурированный 2D-объект, который вращается таким образом, что всегда обращен к камере. Подробнее
Посмотрите, как в частицах Словарь оси Y и Z были перевернуты. Теперь это исправлено. - При использовании неравномерного масштаба преобразования для частиц сетки поворот применялся после масштабирования. Это был регресс в 2017.x. В 5.6 и ранее он вел себя корректно, но сломался в цикле 2017 года. Исправление этой ошибки корректирует содержимое, созданное в версии 5.6 и более ранних, но изменяет содержимое, созданное в версии 2017.x.
- Сферические зоны ветра оказывали противоположное влияние на частицы по сравнению с деревьями. Это было исправлено, поэтому сферические зоны ветра теперь отталкивают частицы, а не притягивают их. Вы можете восстановить предыдущее поведение, отключив множитель внешних сил или Wind ZoneGameObject, который добавляет эффект ветра к вашему местность. Например, деревья в ветровой зоне будут изгибаться в реалистичной анимированной манере, а сам ветер будет двигаться импульсами, создавая естественные закономерности движения среди деревьев. Подробнее
См. Словарь. Unity не может изменить это автоматически, так как сцены с деревьями или зонами направленного ветра могут быть неправильно затронуты.
Обновление компилятора C# до Roslyn
До версии 2018.3 редактор Unity использовал монокомпилятор C# (mcs) при компиляции файлов C# в проекте. Начиная с версии 2018.3 компилятор Roslyn C# (csc) используется для проектов, ориентированных на новую среду выполнения сценариев (эквивалент .NET 4.x). При переключении на Roslyn можно заметить другое поведение:
- Поддерживается C# 7.3
- Могут появиться дополнительные предупреждения
- Файлы ответов для компилятора Roslyn должны называться
csc.rsp
. См. PlatformDependentCompilation.
Компилятор скриптов UnityScript и Boo удален
Файлы сценариев UnityScript (.js) и Boo (.boo) больше нельзя компилировать в редакторе.
Для получения дополнительной информации см. сообщение в блоге от августа 2017 г., и вы можете использовать инструмент unityscript2csharp для преобразования UnityScript в C#. .
Воспроизведение Animator Root Motion изменилось
Аниматор Root Motion
Движение корневого узла персонажа, независимо от того, контролируется ли оно самой анимацией или извне. Подробнее
См. в Словарь воспроизведение немного изменилось, чтобы исправить некоторые несоответствия при создании Root Motion Animations. в окне анимации.
- Кривые Root Motion больше не нужно генерировать для AnimationClips. Применение Root Motion теперь зависит исключительно от Animator.applyRootMotion.
Эквиваленты 2018.2–2018.4
Case | Generated Root Motion | Animator.applyRootMotion | 2018.2 | 2018.3 & 2018.4 (LTS) |
---|---|---|---|---|
A | yes | yes | Примените Root Motion кумулятивно к Root TransformTransform наверху иерархии преобразований. В префабе корневое преобразование является самым верхним преобразованием в префабе. В анимированном персонаже-гуманоиде корневое преобразование является проекцией преобразования тела на плоскость Y и вычисляется во время выполнения. В каждом кадре вычисляется изменение корневого преобразования, а затем оно применяется к игровому объекту, чтобы заставить его двигаться. Подробнее См. в Словарь. |
Same as 2018.2 |
B | no | no | Примените кривые Position, Rotation и Scale, созданные в AnimationClip. | Same as 2018.2 |
C* | yes | no | Нет движения корневой трансформации | Apply Position, Rotation and Scale as authored in the AnimationClip. |
D* | no | yes | Нет движения корневой трансформации | Apply Root Motion cumulatively on Root. |
Для случаев C и D, чтобы добиться того же результата в версии 2018.3, необходимо реализовать OnAnimatorMove, а затем отказаться от Animator.deltaPosition
и Animator.deltaRotation
в тех случаях, когда вы не хотите применять Root Motion.
Если в вашем проекте используется applyRootMotion
для отключения звука анимации положения, вращения и масштабирования при корневом преобразовании, вам необходимо вручную переопределить свойства корневого преобразования.
Изменения UIElements.ContextualMenu
Обратные вызовы действий меню UIElements.ContextualMenu
теперь принимают параметр ContextualMenu.MenuAction
вместо EventBase
.
ContextualMenu.InsertSeparator
принимает дополнительный параметр string
.
Сетевая игра: устаревшие сетевые API удалены (на основе RakNet)
Эта функция устарела в Unity 5.1 и теперь удалена. Вы больше не можете использовать его в своих проектах в Unity 2018.2.
Смотрите раздел Мультиплеер и сеть для получения дополнительной информации о networkingСистема Unity, позволяющая играть в многопользовательские игры по компьютерной сети. Подробнее
Смотрите в Словарь в Unity.
Импорт файла данных Photoshop (PSD) с использованием прозрачности
При фактической прозрачности Photoshop настраивает пиксельнаименьшую единицу компьютерного изображения. Размер пикселя зависит от разрешения вашего экрана. Пиксельное освещение рассчитывается для каждого пикселя экрана. Подробнее
Просмотр в цветах Словарь, чтобы смешать их с матовым (фоновым) цветом. Процесс правильной подготовки альфа-каналов описан в нашей документации как подготовить альфа-каналы.
Вы можете игнорировать расширение в этом документе, важной частью является примечание, в котором говорится, что вы хотите иметь «непрозрачное» изображение с отдельным альфа-каналом/маской (вместо прозрачности). Unity настроила цвета, чтобы «удалить» матовость, но это прекратилось с 2018.2. Если бы у вас был PSD с прозрачностью, вы могли бы начать видеть белый цвет по краям. Чтобы исправить это, обратитесь к ссылке выше и создайте фактический альфа-канал (вместо прозрачности).
Корутины, возвращаемые MonoBehaviour, когда его GameObject отключается или уничтожается, больше не запускаются.
Исторически, когда GameObject отключается или уничтожается, он останавливает все запущенные сопрограммы в своих дочерних MonoBehaviours. Однако в некоторых случаях сопрограммы, запускаемые из методов, вызываемых в это время (например, OnBecameInvisible()
), ранее могли запускаться. Это приводило к поведению компонента в зависимости от заказа и, в некоторых случаях, к сбоям.
В Unity 2018.1 сопрограммы, возвращаемые во время отключения или уничтожения GameObject, больше не запускаются.
API BuildPipeline теперь возвращают объект BuildReport вместо строки
API BuildPipeline, такие как BuildPipeline.BuildPlayer
и BuildPipeline.BuildAssetBundles
, ранее возвращали строку. Это было пустым, если сборка прошла успешно, и содержало сообщение об ошибке, если сборка завершилась неудачно.
В версии 2018.1 он был заменен новым объектом BuildReport, который содержит гораздо больше информации о процессе сборки.
Чтобы проверить успешность сборки, извлеките свойство summary
объекта отчета и проверьте его свойство result — оно будет BuildResult.Succeeded
для успешной сборки. Например:
var report = BuildPipeline.BuildPlayer(...);
if (report.summary.result != BuildResult.Succeeded)
{
throw new Exception("Build failed");
}
Уведомления о выходе игрока заменены с сообщений на события
Ранее, чтобы получать уведомления о завершении автономного проигрывателя Unity, вы должны были реализовать метод OnApplicationQuit
в MonoBehaviour, а чтобы прервать выход проигрывателя, вы должны были вызвать Application.CancelQuit
.
Введены два новых события. Это Application.wantsToQuit
и Application.quitting
. Вы можете прослушивать эти события, чтобы получать уведомления, когда автономный проигрыватель Unity закрывается. Application.wantsToQuit
вызывается, когда игрок собирается выйти, слушатель для wantsToQuit
должен возвращать true или false. Верните true, если вы хотите, чтобы игрок продолжил выход, или false, чтобы прервать выход. Событие Application.quitting
вызывается, когда проигрыватель гарантированно завершает работу и не может быть прерван.
Application.CancelQuit
устарел, вместо этого используйте Application.wantsToQuit
.
using UnityEngine;
public class PlayerQuitExample
{
static bool WantsToQuit()
{
// Do you want the editor to quit?
return true;
}
static void Quit()
{
Debug.Log("Quitting the Player");
}
[RuntimeInitializeOnLoadMethod]
static void RunOnStart()
{
Application.wantsToQuit += WantsToQuit;
Application.quit += Quit;
}
}
Отказ от поддержки AvatarBuilder.BuildHumanAvatar на платформе .NET
Это изменение затрагивает следующую платформу среды выполнения: WSAPlayerX86, WSAPlayerX64 и WSAPlayerARM.
Замены пока нет.
TouchScreenKeyboard.wasCanceled и TouchScreenKeyboard.done устарели
Существует новый TouchScreenKeyboard.status, который можно запросить, чтобы охватить устаревшие состояния и другие состояния.
MonoDevelop 5.9.6 удален из установщиков Unity, и его поддержка в Unity прекращена.
MonoDevelop 5.9.6 был заменен Visual Studio для Mac в macOS в качестве редактора скриптов пакета C# в установщике macOS. Visual Studio 2017 Community теперь является единственным редактором сценариев C#, устанавливаемым с Unity в Windows.
При установке в расположение по умолчанию рядом с исполняемым файлом Unity Unity больше не распознает MonoDevelopинтегрированную среду разработки ( IDE), поставляемый с Unity 2017.3 и предыдущими версиями. Начиная с Unity 2018.1, MonoDevelop заменяется Visual Studio. Подробнее
См. в разделе Словарь внешний редактор сценариев «MonoDevelop (встроенный)». в предпочтениях. Если редактор кода C# не установлен и не выбран в настройках, Unity использует системное приложение по умолчанию для открытия скриптов C# (.cs).
Интерфейсы обратного вызова BuildPipeline теперь принимают объект BuildReport
Интерфейсы обратного вызова BuildPipeline: IPreprocessBuild
, IPostprocessBuild
и IProcessScene
имеют были изменены, так что теперь они требуют, чтобы вы передавали объект BuildReport
. Это заменяет предыдущие параметры для пути сборки/целевой платформы; вам нужно будет изменить свой код, если вы реализуете эти интерфейсы.
Доступ к пути сборки и целевой платформе можно получить через объект BuildReport
. Теперь путь сборки — report.summary.outputPath
, а целевая платформа — report.summary.platform
.
Активы, расположенные в папках плагинов, больше не будут импортироваться через специализированные импортеры
Ранее ресурсы, расположенные в папках плагинов (например, в каталогах с расширением .bundle, .plugin или .folder), импортировались с помощью специализированных импортеров. Текстуры были импортированы с помощью средств импорта текстур, аудиоклипов с помощью средства импорта аудио и т. д. Теперь все эти ресурсы будут импортироваться с помощью средства импорта по умолчанию, что означает, что вы не сможете ссылаться на эти ресурсы, как раньше, потому что они больше не имеют специализированного тип (текстура, аудиоклип и т. д.). Папки подключаемых модулей являются содержащимися пакетами, поэтому ресурсы внутри не должны быть доступны извне, кроме как с помощью методов доступа к подключаемым модулям.
Чтобы продолжить использовать эти ресурсы, вам необходимо переместить их за пределы папок вашего плагина.
Частицы Particle System Mesh неправильно применяли значение Pivot Offset
Математическая формула, используемая для применения смещения точки опоры к сеткам, была неверной и не соответствовала тому, как она работала для частиц Billboard. Чтобы добиться правильного масштаба, смещение поворота следует умножить на размер частицы, поэтому смещение поворота, равное 1, равно одной полной ширине частицы.
Для сеток размер умножался дважды, то есть величина поворота основывалась на квадрате размера частиц. Это сделало невозможным получение согласованных результатов в системах, содержащих частицы разного размера.
Для систем, использующих частицы одинакового размера, формула может быть переработана, чтобы решить, насколько нужно отрегулировать смещение точки поворота, чтобы компенсировать это изменение в поведении:
Старая формула: offset = size * size * pivot
Новая формула: offset = size * pivot
Следовательно, если все частицы одинакового размера:
newOffset = pivot / size
В системах, в которых размер частиц различается, потребуется визуальная переоценка рассматриваемых систем.
Инстансирование GPU поддерживает глобальное освещение
Начиная с 2018.1, Global Illuminationгруппа методов, которые моделируют как прямое, так и непрямое освещение для получения реалистичных результатов освещения. В Unity есть две системы глобального освещения, сочетающие прямое и непрямое освещение: запеченное глобальное освещение и глобальное освещение в реальном времени.
См. в Словарь (GI) поддерживается функцией создания экземпляров GPU рендеринг в юнити. Каждый экземпляр графического процессора может поддерживать GI, поступающую от различных световых зондовсветовых зондов, хранящих информацию о том, как проходит свет пространство в вашей сцене. Набор световых зондов, расположенных в заданном пространстве, может улучшить освещение движущихся объектов и статических пейзажей LOD в этом пространстве. Подробнее
См. в Словарь, один карта освещенияПредварительно визуализированная текстура, содержащая эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
См. в Словарь (но другой регион в атласе) или один Light Probe Proxy VolumeКомпонент, позволяющий использовать больше информации об освещении для больших динамические игровые объекты, которые не могут использовать запеченные карты освещения (например, большие системы частиц или скинированные сетки). Подробнее
См. в компоненте Словарь (запеченный для тома пространства, содержащего все экземпляры). Стандартные шейдеры и шейдеры поверхностиУпрощенный способ написания шейдеров для встроенного конвейера рендеринга. Подробнее
См. в Словарь эти изменения приходят автоматически, но вам необходимо обновить пользовательский шейдер код для включения этих функций.
Обработка значений по умолчанию функций рисования и размера
Сложные дескрипторы в пространстве имен UnityEditor.IMGUI.Controls, такие как BoxBoundsHandle, CapsuleBoundsHandle, SphereBoundsHandle, ArcHandle и JointAngularLimitHandle, имеют делегатов, которым можно назначать для изменения внешнего вида их контрольных точек. Раньше присвоение этим делегатам значения null приводило к возврату к поведению по умолчанию. Присвоение им значения null теперь не приводит к изменению поведения, что упрощает отключение определенных дескрипторов управления. Соответственно, у каждого класса теперь есть общедоступные точки API для методов по умолчанию, если вам нужно сбросить дескрипторы управления до их поведения по умолчанию.
Компиляция «небезопасного» кода C# в редакторе Unity теперь требует включения параметра.
Для компиляции «небезопасного» кода C# теперь требуется включить параметр Allow ‘unsafe’ code в классе Настройки проигрывателяНастройки, которые позволяют вам установить различные параметры для конкретного игрока для окончательной игры, созданной Unity. Подробнее
См. в Словарь предварительно определенные сборки (например .dll) и в инспектореокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверить и отредактировать значения. Подробнее
См. в Словарь файлы определения сборок. Включение этого параметра заставит Unity передавать параметр /unsafe компилятору C# при компиляции скриптов.
Каталог UnityPackageManager переименован в Packages
В версиях 2017.2 и 2017.3 диспетчер пакетов Unity представил каталог UnityPackageManager , который использовался для хранения файла с именем manifest.json. Сценарии могут получить доступ к содержимому пакета, используя виртуальные относительные пути, начинающиеся с PackagesПакеты – это наборы ресурсов, которые можно совместно использовать и повторно использовать в Единство. Менеджер пакетов Unity (UPM) может отображать, добавлять и удалять пакеты из вашего проекта. Эти пакеты являются родными для менеджера пакетов Unity и обеспечивают фундаментальный метод предоставления функциональных возможностей Unity. Однако диспетчер пакетов Unity также может отображать пакеты Asset Store, загруженные из Asset Store. Подробнее
См. в Словарь.
В версии 2018.1 каталог UnityPackageManager был переименован в Packages для соответствия виртуальным относительным путям упакованных ресурсов. Файл manifest.json должен быть автоматически перемещен в новый каталог.
В результате:
Если в вашем проекте используется Контроль версийСистема управления изменениями файлов. Вы можете использовать Unity в сочетании с наиболее распространенными инструментами контроля версий, включая Perforce, Git, Mercurial и PlasticSCM. Дополнительная информация
См. в системе Словарь (VCS), например PerforceСистема контроля версий для управления изменениями файлов. Подробнее
См. в Словарь или Git, может потребоваться обновить его конфигурацию для отслеживания каталог Packages вместо каталога UnityPackageManager.-
Если ваш проект использует Nuget (или любой внешний менеджер пакетов) таким образом, что он использует каталог Packages, его конфигурацию следует изменить, чтобы использовать другой каталог. Это рекомендуется, чтобы исключить небольшую вероятность того, что пакет будет обнаружен диспетчером пакетов Unity, что может привести к трудным для отладки проблемам, таким как ошибки компиляции или ошибки импорта.
- Чтобы настроить Nuget для использования другого каталога для хранения пакетов, см. официальная документация Microsoft.
После перехода в новый каталог каталог UnityPackageManager можно безопасно удалить.