Unity学习笔记:如何设置Tilemap碰撞体,以及如何优化碰撞体计算【By chutianbo】

117 篇文章 0 订阅
114 篇文章 3 订阅

我们在用Tilemap场景搭建时,常常需要某些Tile具有碰撞的功能,那么我们该怎么实现这个功能呢?

我们先得给Tilemap一个专门的Collider组件,即Tilemap Collider 2D:

然后我们在Tile Palette中找到对应的Tile对象,将需要Collider的瓦片的碰撞体设置为Sprite;

这里本菜设置的None;

然后就响应的瓦片就会有碰撞体了;

这里本菜理解为:

给Tilemap一个Collider后, Tilemap会给palette中设置为允许有碰撞体的精灵一个碰撞体;


我们在运行游戏时,电脑会计算很多碰撞体的碰撞,尤其是我们用Tilemap后,如果每个瓦片都有一个单独的碰撞体要计算,那么会增加很多不必要的运行,因为瓦片中大部分是连续无碰撞体或者连续有碰撞体的,而且每个瓦片碰撞体之间是有微笑间隙的,这些间隙可能会导致某些bug【这让我想起了童年CF生化酒店中的椰子树地下的卡墙bug…】

那么我们可以给Tilemap一个Composite Collider 2D组件,这个组件可以自动组合相邻的瓦片碰撞体:

实现效果如下:

注意,要在Tilemap Collider 2D中将Used by composite选项勾上;

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值