Sprite Slice
# 九宫格图像
# 设置九宫切片精灵
首先,需要确保 Mesh Type
设置为 Full Rect
。要应用此设置,请选择精灵,然后在 Inspector
窗口中单击 Mesh Type
下拉选单并选择 Full Rect
。如果 Mesh Type
设置为 Tight
,由于设置 9
切片精灵时精灵渲染器 (Sprite Renderer
) 生成和渲染精灵的方式,9
切片可能运行不正常
使用 Sprite Editor
窗口可定义精灵的边框(即,想要定义平铺区域的位置,例如墙壁或地板瓦片)。为此,请使用 Sprite
控制面板的 L
、R
、T
和 B
字段(分别表示左、右、上和下)。或者,单击并拖动顶部、底部和两侧的绿点
单击 Sprite Editor
窗口的顶栏中的 Apply
。关闭 Sprite Editor
窗口,然后将精灵从 Project
窗口拖入 Scene
视图,从而开始对其进行处理。
# 对精灵进行 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
切片的情况下缩放精灵。- Tile Mode 当
Draw Mode
设置为Tiled
时,使用Tile Mode
属性可控制当精灵的尺寸发生变化时各部分的重复方式。Continuous: 默认情况下,
Tile Mode
设置为Continuous
。当精灵的大小改变时,重复部分在精灵中均匀重复。Adaptive 当
Tile Mode
设置为Adaptive
时,重复部分仅在精灵的尺寸达到Stretch Value
时才进行重复。
Stretch Value 0.1:
Stretch Value 0.5:
- Tile Mode 当
# 九宫格切片和碰撞体
如果精灵已附加 Collider2D
,需要确保在更改精灵的尺寸时,Collider2D
随之改变。
Unity 中支持 9
切片的 Collider2D
组件只有 2D
盒型碰撞体 (Box Collider 2D
) 和 2D
多边形碰撞体 (Polygon Collider 2D
)。这两个 Collider2D
具有 Auto Tiling
复选框。要确保 Collider2D
组件设置为支持 9
切片,请选择要应用组件的精灵,导航到 Inspector
窗口中的 Collider2D
,然后勾选 Auto Tiling 复选框。这样可以自动更新 Collider2D
的形状,意味着精灵的尺寸变化时,会自动重新调整形状。如果没有启用 Auto Tiling
,即使精灵的尺寸变化,Collider2D
也会保持相同的形状和大小。
# 限制和已知问题
只有两个
Collider2D
支持9
切片,分别为BoxCollider2D
和PolygonCollider2D
。精灵渲染器的
Draw Mode
设置为Sliced
或Tiled
时,无法编辑BoxCollider2D
和PolygonCollider2D
。Inspector
窗口中会禁用编辑功能,并告知由于Collider2D
由精灵渲染器组件的平铺属性所驱动,因此无法对其进行编辑。以
Auto Tiling
模式重新生成该形状时,其他边缘可能出现在Collider2D
的形状之内。这可能会对碰撞产生影响。