unity 2d地面对碰机

2015年01月30日 10:26 0 点赞 0 评论 更新于 2025-11-21 15:44

虽然如今 Unity 3D 是主流技术,但在某些情况下,我们仍会用到 Unity 2D。本文将以坦克游戏为例,详细介绍如何使用 Unity 2D 地面对碰机。

本文涵盖内容

  1. 使用多边形 2D 对撞机建立一个 2D 游戏地形。
  2. 使用 Unity 的自动 sprite 检测自动裁剪和按尺寸制作一个 sprite。
  3. 添加地形。

添加地形

在之前的测试中,坦克从屏幕掉落到了遗落战境,为了阻止这种情况发生,我们需要添加一个接地体。具体步骤如下:

  1. 从“Hierarchy”面板点击“Create -> Sprite”,创建一个空的 sprite 渲染器。然后在 Inspector 面板中将这个 sprite 渲染器命名为“Terrain”。
  2. 下载 terrain.png 图片(注意,这张图片我特意进行了粗糙裁剪,边缘有很多空白空间,但不用担心,Unity 会自动修复)。将该文件拖拽到 Unity 的资源文件夹。
  3. 在 Inspector 窗口把这个资源设置成 sprite,然后点击“Apply”应用设置。
  4. 选择“Terrain”sprite 渲染器,在 Inspector 面板的“Sprite”右侧点击黑色小点,选择刚才创建的“Terrain”sprite。
  5. 点击“Add Component -> Physics2D -> Polygon Collider 2D”,为地形 sprite 渲染器添加一个 2D 多边形对撞机。

2D 多边形对撞机是对撞机的一种形式,它能够自动检测关联 sprite 的轮廓,并将其转化为游戏中的一个对象。

修复 2D 多边形对撞机问题

完成上述步骤后,场景窗口可能会出现一些问题。2D 多边形对撞机虽然检测出了 sprite 的轮廓,但尺寸可能是错误的,并且检测出的 2D 多边形对撞机(绿色网格)可能偏离中心。我们可以通过以下操作来修复这些问题:

  1. 在 Asset 区域里,选择 terrain.png
  2. 在 Inspector 窗口,把“Sprite Mode”设置成“Multiple”,把“Pixels To Units”设置为 40。这是在告诉 Unity 地形 sprite 里有多个 sprite,这是一个快捷方式,Unity 会自动裁剪 sprite 并将其置于中心位置。将“Pixels To Units”设置为 40 能够解决地形的 2D 多边形对撞机过大的问题。
  3. 不要忘记点击“Apply”按钮。

测试地形

完成上述设置后,点击 “Play” 按钮启动场景,测试地形是否能正确工作。坦克应该掉落在地形上。

如果坦克没有完全掉在地形上,可能是 sprite 对齐的问题。确保坦克的 sprite 渲染器在坦克 GameObject 中是正确居中的。点击坦克的 “Tank Body Sprite Renderer”,将其中心设置为 0,0,0。再次启动场景时,坦克应该能正确检测并着落在地形上。

作者信息

feifeila

feifeila

共发布了 3994 篇文章