【Unity】解决Tilemap碰撞常见问题

  • 写在前面的话
  • 前置条件(阅读以下内容需要掌握的知识)
  • 1、碰撞问题
  • 2、跑动中出现“蓝(或者其他背景图片颜色)线”“溜缝”的情况
  • 不理解


写在前面的话

咱也不喜欢废话,图片和方法我都会特别标注出来的,方法绝对详细,并且会把各个细节标注出来。

刚开始学习Unity碰到了很多问题,由于是从实例入手,很多如果系统学习各种组件和工具的话,应该很早就解决了。
一般常见玩法需求碰到的问题蛮全的,这里统一写一篇文章,不光是做个纪录也是方便大家互相学习解决。
很不专业,真心希望专业人士提出业界专业的操作实践经验。



前置条件(阅读以下内容需要掌握的知识)

1、环境:我使用的是Unity2019.4.21f1c1(2021.4.3Unity Hub上给出的稳定版本)
应该自Unity2018.4.16c1以来的版本都能用,更早的应该可以,毕竟属于比较基础的功能。
2、素材:使用的是BiliBili M_Studio老师的Untiy2D入门系列教程中推荐使用的Sunnyland素材 可以在Unity Assets store 里面free(免费)类别中找到。
一些小的互动物体是自己画的,影响不大。
3、对Unity的基本组件有一定的了解,不是怎么了解也没有关系。



1、碰撞问题

我相信在一开始,刚写出来会动的的Character后,大家一定碰上过Player这个物体使用velocity()去运动时,甚至只是自然地下落,都会遇到卡进Tilemap(瓦片地图)的问题。


这一般来说是由于使用tilemap collider2d搭建场景的时候,对每个unit都创建了一个对应的collider2d,这样在我们的unit很多的时候,可能由于图像本身或者其他问题存在连接不畅或者“凸起”(当然这块具体原因我不清楚,只有从感性上去认知了。)导致和玩家控制的Character.collider2d之间产生“不正常”的碰撞。

那么我们就要想办法让整个tilemap成为像它的tag一样完整的碰撞体。

首先我们为tilemap2d再添加一个composite collider 2d

unity六边形瓦片每单位像素 unity瓦片地图_unity六边形瓦片每单位像素

再把tilemap collider2d设置为Used By Composite

unity六边形瓦片每单位像素 unity瓦片地图_unity六边形瓦片每单位像素_02

unity六边形瓦片每单位像素 unity瓦片地图_2d_03


调整edge raidius(边缘半径)使tilemap边缘呈现细细的管状

unity六边形瓦片每单位像素 unity瓦片地图_瓦片地图_04


好了,让我们测试一下效果吧。(可根据效果自行进行后续的修正。)

unity六边形瓦片每单位像素 unity瓦片地图_2d_05

2、跑动中出现“蓝(或者其他背景图片颜色)线”“溜缝”的情况

比如在行动中会遇到下图中的这种情况,瓦片地图连接处出现背景图片颜色的“缝隙”


unity六边形瓦片每单位像素 unity瓦片地图_2d_06

我的解决办法是:

1、

首先在Unity的Hierachy里,选择

unity六边形瓦片每单位像素 unity瓦片地图_unity六边形瓦片每单位像素_07


瓦片地图的父物体(默认的话是Grid)2、

在Inspector中

unity六边形瓦片每单位像素 unity瓦片地图_ide_08

把Cell Size中的X,Y 的值 改为 0.99,0.99

unity六边形瓦片每单位像素 unity瓦片地图_unity六边形瓦片每单位像素_09


这样就解决了


不理解

其他问题或者可以在评论区提出,如果有什么补足还请立即指出。

谢谢你的阅读,如果帮到你,我很高兴;
如果没有帮助,那可以提出你的问题,对此表示抱歉。