2D 的图形对象称为__精灵__ 。精灵的本质是标准纹理,但可通过一些特殊技巧在开发过程中组合和管理精灵纹理以提高效率和方便性。Unity 提供内置的 Sprite Editor,允许从更大图像提取精灵图形。因此可以在图像编辑器中编辑单个纹理内的多个组件图像。例如,可以使用此工具将角色的手臂、腿和身体保持为一个图像中的单独元素。
渲染器有优先级顺序,Unity根据优先级顺序进行排序,可以通过渲染队列指定渲染顺序。通常有两个主要队列:不透明队列,透明队列。2D渲染器主要位于透明队列中,包括精灵渲染器,瓦片地图渲染器和精灵形状渲染器类型。
不透明队列:不透明几何体使用此队列。透明队列:此渲染队列在 Geometry 和 AlphaTest 之后渲染,按照从后到前的顺序。任何经过 Alpha 混合的对象(即不写入深度缓冲区的着色器)都应该放在这里(玻璃、粒子效果)Unity中的渲染器按几个条件排序,例如图层顺序或与摄像机的距离。Unity 的 GraphicsSettings(菜单:Edit > Project Settings__,然后选择 Graphics__ 类别)提供了一项名为 Transparency Sort Mode 的设置,此设置可根据精灵相对于摄像机的位置来控制精灵的排序方式。更具体地说,此设置使用精灵在轴上的位置来确定哪些精灵相对于其他精灵透明,而哪些不透明。 Transparency Sort Mode 有四个可用选项
Default - 根据摄像机的 Projection 模式设置为 Perspective 还是 Orthographic 来进行排序Perspective - 根据透视图进行排序。透视图根据从摄像机位置到精灵中心的距离对精灵进行排序。Custom Axis - 根据 Transparency Sort Axis 中设置的指定轴进行排序学习如何使用 Sprite Editor 切片。
要打开 Sprite Editor,请执行以下操作:
从 Project 视图(图 1:Project 视图)中选择要编辑的 2D 图像。 单击 Texture Import Inspector(图 2:Texture Import Inspector)中的 Sprite Editor 按钮,随后将显示 Sprite Editor(图 3:Sprite Editor)。注意:仅当所选图像上的 Texture Type 设置为 Sprite (2D and UI) 时,才能看到 Sprite Editor 按钮。
注意:如果图像具有多个元素,应在 Texture Import Inspector 中将 Sprite Mode 设置为 Multiple 。
窗口顶栏可以看到有许多控件,图片右上角两个滑动条分辨是放大缩小条,分辨率条。其中最重要的控件是左上角的 Slice 菜单,此控件提供了自动分离图像元素的选项。最后__Apply__和 Revert 按钮用于保存或者放弃所做的任何更改。
手动隔离精灵矩形的做法效果很好,但在很多情况下,Unity 可检测图形元素并自动进行提取,因此节省手动工作。如果单击控制栏中的 Slice 菜单,则会显示以下面板: Type 设置为Automatic的时候,编辑器根据透明度猜测精灵元素边界。可为每个已识别的精灵设置默认轴心。 Method 菜单允许选择如何处理窗口中现有的选择对象。Delete existing 选项将简单地替换已经选择的任何矩形,__Smart__将尝试在创建新矩形的同时保留或调整现有矩形,__Safe__将添加新的矩形而不更改已经存在的矩形。
切片类型也可使用 Grid by Cell Size 或 Grid by Cell Count 选项。当精灵在创建过程中已经以常规模式布局时,这非常有用:
9 切片是一种 2D 技术,可允许以各种大小复用图像,而无需准备多个资源。此技术涉及将图像分成九个部分,确保在重新调整精灵的大小时,不同部分以不同方式缩放或平铺(即,以网格形式重复),使精灵保持比例。在创建图案或纹理(例如 2D 环境中的墙壁或地板)时,这会很有用。
在对精灵进行 9 切片之前,需要确保正确设置该精灵。
首先,需要确保 Mesh Type 设置为 Full Rect。要应用此设置,请选择精灵,然后在 Inspector 窗口中单击 Mesh Type 下拉选单并选择 Full Rect。如果 Mesh Type 设置为 Tight,由于设置 9 切片精灵时精灵渲染器 (Sprite Renderer) 生成和渲染精灵的方式,9 切片可能运行不正常。
在 Scene 视图或 Hierarchy 窗口中选择精灵。在 Inspector 窗口中,导航到 Sprite Renderer 组件,然后更改 Draw Mode 属性。 默认情况下,此属性设置为 Simple__;要应用 9 切片,根据所需要的行为,请将其设置为 Sliced__ 或 Tiled。以下部分使用下面所示的精灵来说明每个选项的行为: Simple
这是默认的精灵渲染器行为。当图像尺寸发生变化时,图像朝所有方向缩放。Simple 不用于 9 切片。 Sliced(可理解为拉伸)
在 Sliced 模式下,角点的大小保持不变,精灵的顶部和底部水平拉伸,精灵的两侧垂直拉伸,精灵的中心水平和垂直拉伸,从而适应精灵的大小。
将精灵的 Draw Mode 设置为 Sliced 时,可以选择使用精灵渲染器或矩形变换组件工具上的 Size 属性来更改大小。这种情况下,仍然可以使用变换组件属性或变换组件工具来缩放精灵;但是,变换组件会在不应用 9 切片的情况下缩放精灵。
Tiled(平铺)
在 Tiled 模式下,精灵保持相同的大小,不会缩放。取而代之的行为是,精灵的顶部和底部水平重复,精灵的两侧垂直重复,精灵的中心以平铺形式重复,从而适应精灵的大小。
将精灵的 Draw Mode 设置为 Sliced 时,可以选择使用精灵渲染器或矩形变换组件工具上的 Size 属性来更改大小。这种情况下,仍然可以使用变换组件属性或变换组件工具来缩放精灵;但是,变换组件会在不应用 9 切片的情况下缩放精灵。
精灵遮罩用于隐藏或显示精灵或精灵组的各个部分。精灵遮罩仅影响使用精灵渲染器 (Sprite Renderer) 组件的对象。
要创建精灵遮罩,请从主菜单选择:GameObject > 2D Object > Sprite Mask。
属性 功能
Sprite要用作遮罩的精灵。Alpha Cutoff如果 Alpha 包含透明区域和不透明区域之间的混合,则可以手动确定所显示区域的分界点。通过调整 Alpha Cutoff 滑动条即可更改此分界点。Range Start Range Start是遮罩开始遮蔽时所在的排序图层 (Sorting Layer)。Sorting Layer遮罩的排序图层。Order in Layer排序图层中的顺序。Range End- Mask All默认情况下,此遮罩将影响其后(更低排序顺序)的所有排序图层。- CustomRange End 可以设置为自定义 Sorting Layer 和 Order in Layer。学习的文档:Unity 文档 2D