Unity2D-地形处理

Unity2D-地形处理

前言

​ 根据之前的学习,目前的我已经可以开发一款简单的2D平台跳跃游戏。在学习过程中,发现了有关角色移动的问题:当角色移动至斜坡时,有时会在 斜坡上卡住 ,或是 斜坡上运动速度与水平地面运动速度不相同,又或是 从斜坡上滑落 ,而这些问题都是我们在开发过程中不想看到的。

​ 为了解决这些问题,我通过收集资料了解了一些 简单的解决方式 。现在我将他们总结成如下方法。

斜坡障碍问题

问题原因

​ 如果我们直接将 未经过处理的TileMap 导入,人物走上斜坡时很可能会因为莫名的障碍卡住。此时检查Grid 的 TilemapCollider 可以发现,斜坡上默认生成的碰撞体 不是光滑的

image-20221101221950548

修改Tile Collider默认碰撞体

​ 要解决这个碰撞体与地图形状不匹配的问题,我们需要 自定义瓦片的物理形状 。在修改瓦片默认碰撞体前,请先将你的地图素材进行 切割 处理(瓦片地图原本是一整张完整的图片,不进行切割就无法对单个瓦片进行默认碰撞体的修改)。

​ 同时,你还需要 删除所有通过 目标瓦片地图 完成创建的 瓦片(Tile),因为即使修改了参数,已经创建完成的瓦片也 不会更新

​ 例如下图,在修改图片默认碰撞范围之前,我就将图片拖入Tile Palette窗口中,在TileMap > Castle > Picture 文件夹下创建了 瓦片(Tile) 文件。那么现在我需要将其全部删除。

image-20231114184510200

详细步骤

  • 首先选择需要更改 TileCollider 默认形状的瓦片地图图片,点击Sprite Editor,在左上角下拉菜单选择 Custom Physics Shape

image-20221101222848401

  • 然后选中我们需要修改的其中一个瓦片,画出对应的碰撞盒形状

image-20221101223133132

  • 最后重新将图片拖入Tile Palette中,重新加载地图的碰撞盒形状。

    完成上述操作后,我们将会的到一个相对正常的 TileMap Collider .

image-20221101223733478

参考资料

MMMMrD的个人博客

posted @ 2023-11-14 19:06  Daliuteliu  阅读(121)  评论(0编辑  收藏  举报