版本:2022.3
语言: 英语
创建2D游戏
与精灵协同工作

2D排序

概述

Unity根据其类型和用途按优先级对渲染器进行排序。您可以通过渲染器的渲染队列指定渲染器的渲染顺序。通常情况下,有两个主要队列:不透明队列透明队列。2D渲染器主要位于透明队列中,包括Sprite Renderer一个组件,允许您将图像显示为精灵以在2D和3D场景中使用。 更多信息
词汇表中查看
Tilemap RendererSprite Shape Renderer类型。

透明队列按优先级排序

透明队列中的2D渲染器通常遵循以下优先级顺序

  1. 排序层和在层中的顺序
  2. 指定渲染队列
  3. 到摄像机的距离
  4. 排序组
  5. 材质/着色器
  6. 分界点

还有其他因素可能导致排序顺序与常规优先级顺序不同。这些因素因项目而异。

排序层和在层中的顺序

排序层和在层中的顺序(在渲染器的“属性”设置中)(通过检查器一个Unity窗口,用于显示当前所选的GameObject、资产或项目设置的信息,允许您检查和编辑值。 更多信息
词汇表中查看
窗口或通过Unity Scripting API可用的所有2D渲染器。将渲染器设置为现有的< strong>排序层或创建一个新的,以确定其在渲染队列中的优先级。更改< strong>层中的顺序值以设置在同一< strong>排序层中的其他渲染器之间的优先级。

指定渲染队列

您可以在渲染器的材质设置或材质的着色器在GPU上运行的程序。 更多信息
词汇表中查看
设置中指定渲染队列类型。这对于对不同材质使用的渲染器进行分组和排序很有用。有关详细信息,请参阅ShaderLab:子着色器标签文档。

到摄像机的距离

摄像机组件根据其< strong>投影 设置对渲染器进行排序。有两种选项: 透视和< strong>正交

透视

在此模式下,渲染器的排序距离是渲染器与摄像机位置的直接距离。

正交

渲染器的排序距离是渲染器位置与摄像机方向之间的距离。对于默认的2D设置,这是沿着(0,0,1)轴。

当您将相机组件设置为

透视

正交时,Unity会自动将相机的透明度排序模式设置为所选模式。您可以通过两种方式手动设置透明度排序模式

  • 打开

    项目设置一系列设置,允许您配置项目中物理、音频、网络、图形、输入和其他许多区域的操作。更多信息
    词汇表中查看
    并转到

    图形,然后在

    相机设置下使用透明度排序模式

  • 通过脚本API设置相机的透明度排序模式

相机

透明度排序模式设置在

项目设置中的

图形类别下(主菜单:编辑 > 项目设置 > 图形)。当设置为

默认时,相机的投影设置具有优先权。当设置为除

默认以外的选项时,相机的投影设置保持不变,但相机的

透明度排序模式将更改为该选项。

项目设置和通过脚本API提供的其他选项是自定义轴排序模式

自定义轴排序模式

选择此模式可按您在项目设置(主菜单:编辑 > 项目设置 > 图形 > 透明度排序轴)中设置的自定义轴上渲染器的距离对其进行排序。此模式常用于需要正确在等距瓦片图上排序和渲染瓦片精灵的项目。有关更多信息,请参阅创建等距瓦片图

注意:如果您的项目是2D通用

渲染管道一系列操作,将场景内容显示在屏幕上。Unity允许您选择预构建的渲染管道,或编写自己的。更多信息
词汇表中查看
(URP)项目,则

透明度排序模式不在

项目设置中可用,而是在2D渲染器资产属性中进行配置。有关更多信息,请参阅配置2D渲染器资产文档

精灵排序点

默认情况下,一个

精灵一个二维图形对象。如果您习惯于3D工作,那么精灵本质上只是标准纹理,但在开发过程中,精灵纹理有专门的技术进行组合和管理,以提高效率和便捷性。更多信息
词汇表中查看

排序点

设置为

中心,Unity会测量相机变换位置与精灵中心之间的距离来确定它们的排序顺序。另一个选择是将精灵的

排序点

设置为

锚点在全局空间中的位置。在精灵的

精灵渲染器属性设置中选择

锚点

选项,并在

精灵编辑器中编辑精灵的锚点位置。

排序组

排序组是一种组件,用于将共享共同根的渲染器分组在一起进行排序。同一排序组中的所有渲染器具有相同的

排序图层、图层中的顺序、以及

到相机距离。有关更多详细信息,请参阅有关排序组组件及其设置的文档。

材质/着色器

Unity将材质设置相同的Renderer进行组合,以获得更高效的渲染性能,例如使用动态批处理Unity自动处理过程,尝试将多个网格渲染成单个网格以提高图形性能。该技术在CPU上转换所有GameObject顶点并将许多相似顶点组合在一起。更多信息
查看在术语表

决战者

当多个Renderer具有相同的排序优先级时,决战者是由Unity将Renderer放置在渲染队列中的顺序。因为这是一个无法控制的内部过程,所以您应该使用排序选项(如排序层排序组)确保所有Renderer具有不同的排序优先级。

创建2D游戏
与精灵协同工作