Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Глобальное освещение

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

Это также влияет на потоковую сценуСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
AssetBundles с GI в реальном времени. LightmapПредварительно визуализированная текстура, содержащая эффекты источников света на статических объектах сцены. Карты освещения накладываются поверх геометрии сцены для создания эффекта освещения. Подробнее
See in Словарь
данные не будут загружены, поэтому такие пакеты также должны быть восстановлен.

Световые зонды и освещение окружающей среды теперь согласованы в гамме и линейном цветовом пространстве. Следует ожидать некоторых отличий в освещении окружающей среды по сравнению с Unity 5.2. Выходные данные теперь соответствуют интенсивности Unity 4.x, но поскольку 4.x и наш код проекции света генерирует коэффициенты L2, а Enlighten выводит только L1, спад для финальных световых зондовСветовые зонды хранят информацию о том, как свет проходит через пространство в вашей сцене. Набор световых зондов, расположенных в заданном пространстве, может улучшить освещение движущихся объектов и статических пейзажей LOD в этом пространстве. Подробнее
См. в Словарь
может выглядеть по-разному. Поддержка L2 для световых зондов появится в будущем релизе. Направленные неважные огни теперь должны соответствовать 4.x. Пробы света всегда передаются шейдерам в линейном цветовом пространстве, а окончательное преобразование гаммы происходит на графическом процессоре. Если вы используете функции ShadeSHxxx Unity для оценки сферических гармоник в шейдерепрограмме, работающей на графическом процессоре. Подробнее
См. в Словарь
, вам не нужно менять шейдеры. В шейдерах UNITY_STANDARD_SIMPLE оценка SH не разделяется между пикселемнаименьшей единицей компьютерного изображения. Размер пикселя зависит от разрешения вашего экрана. Пиксельное освещение рассчитывается для каждого пикселя экрана. Подробнее
См. в Словарь
и вершинный шейдерПрограмма, которая запускается для каждой вершины 3D-модели во время рендеринга модели. Подробнее
См. в Словарь
, поэтому мы ограничиваем линейное преобразование в гамма только один раз и только в вершинном шейдере. На более продвинутых графических процессорах вычисления разделены между вершинным и фрагментным шейдерами.

Сюрикен

Размер частиц в CollisionСтолкновение происходит, когда физический движок обнаруживает, что коллайдеры двух игровых объектов соприкасаются или перекрываются. , когда хотя бы один имеет компонент Rigidbody и находится в движении. Подробнее
См. в Словарь
Модуль заменен новым параметром: Масштаб радиуса. Этот новый параметр действует как множитель фактического размера частиц. Если вы использовали старое значение для чего-то другого, кроме аппроксимации размеров частиц, вам нужно будет перенастроить границы столкновений, используя новый параметр.

Редактирование нескольких сцен

Функция редактирования нескольких сцен представляет новый API через EditorSceneManager и SceneManager. Это означает, что многие API в EditorApplication и Application устарели.

  • EditorApplication.NewScene
  • EditorApplication.NewEmptyScene
  • EditorApplication.OpenScene
  • EditorApplication.OpenSceneAdditive
  • EditorApplication.SaveScene
  • EditorApplication.SaveCurrentSceneIfUserWantsTo
  • EditorApplication.SaveCurrentSceneIfUserWantsToForce

Все вышеперечисленное имеет эквивалентные API в EditorSceneManager

  • EditorApplication.currentScene

Внутренне это вернет имя активной сцены в диспетчере сцен, но для получения всех открытых в данный момент сцен используйте API EditorSceneManager

  • EditorApplication.MarkSceneDirty
  • EditorApplication.isSceneDirty

Каждая сцена теперь имеет собственный грязный флаг. Получите сцены через EditorSceneManager и проверьте их состояние. Установка грязных сцен также выполняется через EditorSceneManager. Все устаревшие API работают только с активной сценой.

  • Application.LoadLevel
  • Application.LoadLevelAsync
  • Application.LoadLevelAdditive
  • Application.LoadLevelAdditiveAsync

Application.LoadLevel[Async](path) перенаправляет на SceneManager.LoadScene[Async](path, false), а Application.LoadLevelAdditive[Async](path) перенаправляет на SceneManager.LoadScene[Async](path, true)

  • Application.loadedLevel
  • Application.loadedLevelName

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

Обратите внимание, что EditorApplication.OpenSceneAdditive больше нельзя вызывать во время воспроизведения в редакторе. Это также означает, что его нельзя вызвать из обратного вызова [PostprocessScene]. Если EditorApplication.OpenSceneAdditive все равно вызывается во время воспроизведения, то режим воспроизведения будет остановлен.

Предварительно скомпилированные ресурсы шейдера

Предварительно скомпилированные ресурсы шейдера больше не поддерживаются. Это означает, что вы больше не можете щелкнуть «показать скомпилированный код» и скопировать полученную дизассемблированную часть в новый ресурс шейдера. Предварительно скомпилированные старые ресурсы шейдеров будут помечены как неподдерживаемые.

«Показать скомпилированный код» в шейдере инспекторокно Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройки проекта, позволяющие просматривать и редактировать значения. Дополнительная информация
See in Словарь
по-прежнему будет работать и будет отображать разборку шейдера на каждом платформа.

Точно так же вы по-прежнему можете просматривать сгенерированный код для шейдера поверхностиУпрощенный способ написания шейдеров для встроенного рендеринга Трубопровод. Подробнее
Посмотрите в Словарь
, измените его и скопируйте в новый ресурс шейдера - так как вы изменяете только исходный код HLSL.

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

Для получения более подробной информации см. этот unity. сообщение в блоге о предстоящем прекращении поддержки функций.

Поддержка OpenGL 4.x на компьютере

В качестве новой функции редактор OS X и автономный режим теперь поддерживают новый бэкэнд GL, который позволяет использовать функции OpenGL 3.x и 4.x, такие как тесселяция и геометрические шейдеры. Однако, поскольку Apple ограничивает версию OpenGL для рабочего стола OS X не более чем 4.1, она не поддерживает все функции DirectX 11 (такие как представления неупорядоченного доступа или вычислительные шейдеры). Это означает, что все шейдеры, настроенные для целевого уровня шейдеров 5.0 (с #pragma target 50), не смогут загрузиться в OS X.

Поэтому вводится новый целевой уровень шейдера: #pragma target gl4.1. Для этого целевого уровня требуется как минимум OpenGL 4.1 или DirectX 11.0 Shader Level 5 на настольных компьютерах или OpenGL ES 3.1 + Android Extension Pack на мобильных устройствах.

Наборы ресурсов

Формат контейнера AssetBundle был изменен для поддержки нового LZ4 сжатияметода хранения данных, который уменьшает объем памяти. это требует. См. Сжатие текстур, Сжатие анимации, Сжатие звука, Сжатие компоновки.
Посмотрите в Словарь
и получите основу для дальнейших улучшений. Пакеты, созданные в более ранней версии (2.x, 3.x), устарели и не поддерживаются. Пакеты, созданные в Unity 4.x, 5.0–5.2, поддерживаются и могут быть загружены. Но, если они уже были кэшированы на пользовательском устройстве с помощью метода WWW.LoadFromCacheOrDownload, они будут загружены повторно. Также имейте в виду, что данные в таких пакетах могут быть изменены (см., например, раздел «Глобальное освещение»).

GetComponent(s)InChildren

GetComponentsInChildren имеет несколько измененное поведение в случае, когда вы вызываете его для gameObjectфундаментального объекта в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Посмотрите в Словарь
, чей родитель неактивен. Раньше в результате вы всегда получали пустой массив. Потому что это никогда не то, что вам нужно, и потому что это означало, что GetComponentsOnChildren не работал с префабамиТип ресурса, который позволяет вам хранить GameObject с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов на сцене. Подробнее
См. в Словарь
, это было изменено, чтобы игнорировать любое активное состояние цели. родители игрового объекта. Кроме того, единственная версия GetComponentInChildren() теперь имеет необязательный аргумент includeInactive.

UI/шейдеры по умолчанию

Использование нового UI по умолчанию(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. Подробнее
See in Словарь
шейдера для не новых объектов пользовательского интерфейса больше не поддерживается по умолчанию. Ранее существовала проверка «если», чтобы определить, следует ли использовать _clipRect, но по соображениям производительности эта проверка была удалена. Чтобы продолжить использование нового шейдера пользовательского интерфейса на не новом объекте пользовательского интерфейса, вам необходимо самостоятельно указать допустимый clipRect.

Точечные источники света, отбрасывающие тень

У точечных источников света, выбранных для отбрасывания теней, теперь есть рабочий ползунок смещения, позволяющий настраивать и балансировать артефакты затенения (под затенением или акне в тенях). Это означает, что любые существующие точечные источники света, для которых до этого мог быть установлен параметр смещения и которые ничего не делали, теперь начнут оказывать эффект, и это изменит поведение отбрасывания теней.

Прожекторные источники света, отбрасывающие тени, теперь имеют новый ползунок, который позволяет выбрать расстояние ближнего клипа. Это расстояние до источника света, ниже которого никакие объекты не будут отбрасывать тени. Низкие значения включают близлежащие объекты за счет значительного снижения точности теней. В предыдущих версиях Unity это было рассчитано как 4% от общего диапазона света, что может быть слишком большим для больших источников света. Теперь по умолчанию используется значение 0,2, которое должно работать в большинстве случаев.

Математика кватернионов

Новая поддержка импортирующих кривых вращения Эйлера и поддержка всех различных порядков вращения Эйлера потребовали перезаписи математических функций QuaternionToEuler и EulerToQuaternion как в традиционной версии, так и в версии SIMD. Эти новые варианты еще не были доступны в API и пока используются только внутри компании.

Это должно оказать очень незначительное влияние, но между предыдущей и новой версией есть незначительные различия (<0,01 градуса) и только в очень близких условиях блокировки подвеса. Проведенные тесты показали, что новая версия в большинстве случаев более точна, а средняя ошибка меньше как минимум в 10 раз.

Флаги режима совместной работы

Флаги JointDriveMode устарели и поэтому были удалены. Однако в более ранних версиях Unity они неправильно использовались для игнорирования настраиваемого Jointфизического компонента, позволяющего динамически соединять компоненты Rigidbody. , обычно допускающий некоторую степень движения, например шарнир. Подробнее
См. Словарь
в настройках жесткости и демпфирования Joint Drive. . При обновлении проекта до Unity 5.3, в котором используются Настраиваемые соединенияШироко настраиваемые соединения, на основе которых создаются другие типы соединений. Его можно использовать для создания чего угодно: от адаптированных версий существующих суставов до специально разработанных и узкоспециализированных суставов. Подробнее
См. в Словарь
, пользователи должны знать, что эти настройки теперь могут иметь эффект, которого раньше не было, потому что они ошибочно игнорировались из-за старых флагов JointDriveMode.

Устаревшая анимация света

Начиная с версии 5.3 устаревшие анимации, как существующие, так и новые, не будут анимировать свойства света. Изменения в базовой структуре данных Lights сделали их несовместимыми с Legacy. Чтобы правильно анимировать источники света, используйте Компонент анимацииКомпонент модели, который анимирует эту модель с помощью системы анимации. Компонент имеет ссылку на ресурс Animator Controller, который управляет анимацией. Подробнее
См. в Словарь
.=======

Расширения редактора

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

Переменная шейдера текстуры глубины камеры

Переменная шейдера _CameraDepthTexture была исправлена, чтобы последовательно ссылаться на основную текстуру глубины на камереКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее
См. в Словарь
, а не как раньше последняя текстура глубины, визуализированная любой камерой. Если вы выполняете рендерингПроцесс вывода графики на экран (или текстуры рендеринга). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
Посмотрите в Словарь
дополнительную камеру в скрипте, например. получить буфер глубины половинного разрешенияХранилище памяти, в котором хранится глубина z-значения каждого пикселя изображения, где z -value — это глубина для каждого визуализируемого пикселя от плоскости проекции. Подробнее
См. в Словарь
, и вам нужно привязать его текстуру глубины, теперь вы должны использовать переменная _LastCameraDepthTexture, имеющая семантику ссылки на текстуру глубины той камеры, которая визуализировалась последней.

Вычислительные буферы

Разметка данных ComputeBuffers в автоматически преобразованных шейдерах OpenGL была изменена, чтобы соответствовать разметке DirectX ComputeBuffers. Если вы используете ComputeBuffers в OpenGL, удалите весь код, который настраивает данные, чтобы они соответствовали предыдущим правилам макета, специфичным для OpenGL. Дополнительные сведения см. в разделе Вычислительные шейдеры.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3