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

Posted 普通网友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity学习笔记:如何设置Tilemap碰撞体,以及如何优化碰撞体计算By chutianbo相关的知识,希望对你有一定的参考价值。

我们在用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选项勾上;

以上是关于Unity学习笔记:如何设置Tilemap碰撞体,以及如何优化碰撞体计算By chutianbo的主要内容,如果未能解决你的问题,请参考以下文章

Unity 简记--TileMap

Unity2D学习笔记-Tilemap

在cocos creator中使用代码给TileMap地图块添加碰撞体

Unity笔记静态碰撞体的陷阱

Ruby‘s Adventrue游戏制作笔记Unity使用tilemap绘制场景

Ruby‘s Adventrue游戏制作笔记Unity使用tilemap绘制场景