本文包括:
- 使用多边形2D对撞机建立一个2D游戏地形。
- 使用Unity的自动sprite检测自动裁剪和按尺寸制作一个sprite
添加地形
这次坦克从屏幕掉落到了遗落战境。我们要添加一个接地体来阻止这种情况的发生。首先,从“Hierarchy”面板点击“Create -> Sprite”,创建一个空的sprite渲染器,如下图。在Inspector面板中把这个sprite渲染器命名为“Terrain”
接下来,下载下图的terrain.png图片。注意,我特意粗糙地裁剪了这个sprite,边缘有很多的空间。不要着急,Unity会自动修复这个!现在就让我们看看这是如何实现的。把这个文件拖拽到Unity的资源文件夹。
注意:记住在Inspector窗口把这个资源设置成sprite,然后点击“Apply”应用它
2D多边形对撞机 是对撞机的形式之一,能够自动检测关联的sprite的轮廓,并把它变成游戏中的一个对象。
如果你已经完成了上述步骤,那么场景窗口中将会出现如下的画面。
Ack。这还不是我们想要的。2D多遍形对撞机已经检测出了sprite的轮廓,但是尺寸是错的。另外,注意检测出的2D多边形对撞机(绿色网格)是偏离中心的。现在让我们来修复这些问题。
在Asset区域里,选择terrain.png,在Inspector窗口,把“Sprite Mode”设置成“Multiple”,把“Pixels To Units”设置为40,如下图。
这是告诉Unity在地形sprite里是有多个sprite的,实际上这是一个快捷方式,Unity自动裁剪sprite并将其置于中心位置。
把“Pixels To Units”设置为 40 能够解决地形的2D多边形对撞机过大的问题。
注意:不要忘记点击“Apply”按钮。
现在,你看到的应该是下图这个样子的:
现在,测试一下地形是否能正确的工作。点击 “Play”按钮启动场景。
坦克应该掉在地形上,如下图所示:
注意:如果坦克没有完全掉在地形上,那就是sprite对齐的问题。确保坦克的sprite渲染器在坦克GameObject中是正确居中的。点击坦克的‘Tank Body Sprite Renderer”,将其中心设置为0,0,0,如下图: