#前述
在进行2D游戏开发时 , 有一种常用的开发技巧 ,称为9-slicing 。 这种由Unity3D提供的技巧 , 可以将图像分成9个部分 ,所以当你改变Sprite的尺寸大小时 ,不同 的部分便将以不同的方式进行缩放或者平铺 , 从而维持Sprite的整体比例 。
这个技巧是十分有用的 , 尤其是在创建固定模板的图像时 , 例如2D环境中的墙壁与地板 ;
作为演示 , 下面是一个使用了9-slicing的Sprite , 每个部分用A到I进行了标记 :
以这个图像为示例 , 我们将阐述当其尺寸发生变化时 ,将会发生什么 :
- 四个角落部分(A,C,G and I)将保持原样 ,尺寸大小不会改变 。
- B和H部分在水平方向 ,将会伸展(scale)或者平铺 。
- D和F部分在竖直方向 ,将会伸展或者平铺 ;
- E部分将会同时在水平和竖直方向上伸展或者平铺 ;
那么当Sprite图像的尺寸发生变化时 ,除了4个角落保持原样 ,其余的部分到底是伸展还是平铺呢 ? 这将取决于我们如何进行设置 ,而这将是本文接下来所需要详细探讨的 。
#将你的Sprite设置为9-slicing
在你将Sprite设置为9-slicing之前 ,你需要确保将Sprite进行了合理的设置 。
首先你需要确保将Mesh Type设置为了Full Rect 。 如何操作呢 ? 你需要先选定Sprite ,然后在Inpector窗口中点击Mesh Type ,然后在下拉菜单中选择Full Rect 。如果将Mesh Type设置为Tight的话 ,9-slicing可能就会工作的不正常 。 为什么呢 ?这主要是取决于Sprite Render如何生成并渲染一个被设置为9-slicing的Sprite 。
在Inspector窗口中 , Mesh Type已经通过红框被标记了出来
接下来, 你需要通过Sprite Editor设置Sprite的borders(边界) 。怎样操作呢?选择Sprite , 然后在Inspector窗口中单击Sprite Button按钮 。
在Inspector窗口中 , Sprite Editor已经被红框标记好了 。点击Sprite获取更多关于Sprite Import Settings的详细介绍 ;
我们通过Sprite定义了Sprite的边界 ,也就是定义了Sprite图像的哪个区域将会在尺寸发生变化时进行平铺 ,例如一块墙砖 ;怎样操作呢 ? 这需要我们使用Sprite控制面板中的L,R,T和B进行设置(left ,right ,top和bottom) ,或者 , 你也可以通过拖拽这些位于各边的绿点来进行设置 。