Unity 6.3
0 онлайн 20 гостей 3 в системе
Вход

Изменить порядок сортировки 2D GameObjects

Чтобы поместить 2D и GameObjects друг за другом или перед собой в сцене, измените их порядок сортировки.

Для получения дополнительной информации о критериях, используемых Unity для упорядочения спрайтов и других 2D GameObjects, см. 2D порядок отображения.

Нижеследующее относится к спрайтам, плиткам и формам спрайтов.

Расположите 2D GameObjects слоями

Вы можете использовать слои для представления различных глубин, потому что они отделены и Unity отображает их в порядке. Используйте Слой сортировки и Порядок в слое свойств компонента рендерера GameObject.

По умолчанию все 2D GameObjects находятся на слое сортировки По умолчанию и имеют одинаковое значение Порядок в слое, равное 0. Чтобы переместить 2D GameObjects на другой слой, выполните следующие действия:

  1. В главном меню выберите Изменить > Project Настройки > Метки и слои.

  2. В разделе Слои сортировки выберите кнопку Добавить (+) для добавления нового слоя сортировки.

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

  3. Выберите 2D GameObject, который вы хотите добавить в слой.

  4. В разделе Дополнительные настройки компонента рендерера, например Sprite Renderer, установите свойство Sorting Layer на новый слой.

Чтобы создать подслои, используйте Порядок в слое свойства. Unity рендеринг подслоев в числовом порядке, так что более низкие значения отображаются за более высокими значениями. Например, Порядок в слое значение –1 отображается за спрайтом с Порядок в слое значение 3.

Чтобы избежать смешивания групп спрайтов на одних и тех же слоях и подслоях, см. Предотвращение смешивания 2D GameObjects в слоях сортировки.

Установить порядок в слое и подслое

Чтобы установить порядок 2D GameObjects в слое и подслое сортировки, используйте один из следующих подходов:

  • Изменить очередь рендеринга материалов.
  • Изменить, как Unity рассчитывает расстояние.

Изменение очереди рендеринга материалов

Чтобы управлять порядком в подслое, дайте GameObjects различные материалы с разными значениями очереди рендеринга. По умолчанию, все материалы 2D имеют значение очереди рендеринга 3000.

Чтобы изменить очередь отображения, выполните следующие действия:

  1. Выберите GameObject.
  2. В окне Inspector откройте окно Материал Inspector.
  3. Установите Render Queue на другое значение. Например, используйте 3000+1 для рендеринга этого материала после стандартных материалов 2D.

Дополнительные сведения см. в Поведение очередей отображения и сортировки.

Изменить, как Unity рассчитывает расстояние

В слое сортировки, подслое и очереди рендеринга Unity определяет порядок 2D GameObjects путем вычисления их расстояния от камеры.

По умолчанию, Unity рассчитывает расстояние на основе Прогноз свойства камеры. Установите его на одно из следующих значений:

  • Ортографический: Unity использует расстояние от плоскости камеры до центра GameObject. Чтобы управлять порядком отображения, увеличите или уменьшите положение z в компоненте Transform GameObjects.
  • Перспектива: Unity использует расстояние от точки камеры до центра GameObject. Чтобы управлять порядком отображения, увеличьте или уменьшите z-положение в Transform компоненте GameObjects, или переместите GameObjects в сторону от или к углам экрана.
Боковой вид трех спрайтов, расположенных на разных глубинах перед ортографической камерой. В представлении Scene, спинные спрайты рендируются за спиной передних спрайтов.
Боковой вид трех спрайтов, расположенных на разных глубинах перед ортографической камерой. В представлении Scene, спинные спрайты рендируются за спиной передних спрайтов.

Чтобы изменить расчет расстояния без изменения проекции камеры, используйте свойство Transparency Sort Mode актива рендерера 2D.

Примечание: Если вы используете Built-in Render Pipeline, свойство Режим сортировки прозрачности находится в окне Настройки графики.

Используйте позицию 2D для расчета расстояния

Чтобы использовать позицию 2D из GameObjects для вычисления расстояния, используйте пользовательскую ось.

Выполните следующие действия:

  1. Установите Режим сортировки прозрачности на Настраиваемая ось.
  2. Установите Transparency Sort Axis на пользовательскую ось, которую вы хотите использовать.

Например:

  • Используйте вертикальную ось (0, 1, 0), так что чем выше GameObject в сцене, тем дальше он находится. Это полезно для игр сверху вниз.
  • Используйте диагональную ось (1, 1, 0), так что чем ближе GameObject находится в сцене, тем дальше он находится. Это полезно для изометрических игр.

Дополнительные ресурсы