Unity2D-地形处理
Unity2D-地形处理
前言
根据之前的学习,目前的我已经可以开发一款简单的2D平台跳跃游戏。在学习过程中,发现了有关角色移动的问题:当角色移动至斜坡时,有时会在 斜坡上卡住 ,或是 斜坡上运动速度与水平地面运动速度不相同,又或是 从斜坡上滑落 ,而这些问题都是我们在开发过程中不想看到的。
为了解决这些问题,我通过收集资料了解了一些 简单的解决方式 。现在我将他们总结成如下方法。
斜坡障碍问题
问题原因
如果我们直接将 未经过处理的TileMap 导入,人物走上斜坡时很可能会因为莫名的障碍卡住。此时检查Grid 的 TilemapCollider 可以发现,斜坡上默认生成的碰撞体 不是光滑的。
修改Tile Collider默认碰撞体
要解决这个碰撞体与地图形状不匹配的问题,我们需要 自定义瓦片的物理形状 。在修改瓦片默认碰撞体前,请先将你的地图素材进行 切割 处理(瓦片地图原本是一整张完整的图片,不进行切割就无法对单个瓦片进行默认碰撞体的修改)。
同时,你还需要 删除所有通过 目标瓦片地图 完成创建的 瓦片(Tile),因为即使修改了参数,已经创建完成的瓦片也 不会更新。
例如下图,在修改图片默认碰撞范围之前,我就将图片拖入Tile Palette窗口中,在TileMap > Castle > Picture 文件夹下创建了 瓦片(Tile) 文件。那么现在我需要将其全部删除。
详细步骤
- 首先选择需要更改 TileCollider 默认形状的瓦片地图图片,点击Sprite Editor,在左上角下拉菜单选择 Custom Physics Shape
- 然后选中我们需要修改的其中一个瓦片,画出对应的碰撞盒形状
-
最后重新将图片拖入Tile Palette中,重新加载地图的碰撞盒形状。
完成上述操作后,我们将会的到一个相对正常的 TileMap Collider .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?