目录
什么是Collider(碰撞体)?
Collider(碰撞体):
在Unity(游戏引擎)中,Collider就是一个“看不见的外壳”,它用来告诉游戏系统:
“这里有东西,如果别的物体碰到了这里,要产生碰撞反应!”
直观比喻:想象你开着一辆隐形的车,虽然别人看不到,但只要撞到了这辆隐形车,就会像撞到真实的车一样产生撞击效果。Collider就是这辆“隐形车身”的轮廓。
什么是Edge Collider 2D(边缘碰撞体2D)?
Edge Collider 2D(边缘碰撞体2D):
是Unity里专门用于2D游戏(二维游戏)的一种特殊的碰撞体,它的特点是:
-
它不是封闭的形状(不像圆形、方形那样围成一个完整的区域)。
-
它是一条单独的线(由点连接而成的折线),只有边,没有面。
直观比喻:
想象一下,在一张纸上用铅笔画了一条曲折的线。
别人(比如小人角色)可以沿着这条线滑动,撞到线的时候会产生反应,但这条线本身没有厚度,也不会封闭成一个圈。
为什么要用Edge Collider 2D?
用处:
-
适合做地形:比如滑雪游戏里的滑道、山坡、平台边缘。
-
占用资源少(性能优化):因为它只是线段,没有面,计算起来很快。
-
可以做得非常复杂又灵活:可以随意画出弯曲、崎岖、自由形状的边界。
直观比喻:
如果你用普通的碰撞体(比如Box Collider 2D,盒子碰撞体2D)来做一座弯弯曲曲的山,你要拼接好多小块,很麻烦。
但用Edge Collider 2D,就像直接拿一支笔,一笔画出山的轮廓,又快又自然!
Edge Collider 2D是怎么工作的?
Edge Collider 2D的底层本质是:
-
你在空间上定义一系列点(Point,点)
-
Unity自动按照这些点连成一条连续的线段。
-
当其他带有Rigidbody 2D(刚体2D,意思是可以运动并受物理规则影响的物体)的物体碰到这条线时,会触发物理碰撞。
这条线段只在边界上有效,穿过线下面或上面是可以的(如果速度很快或者没处理好,甚至可能穿透,这是高级话题,后面可以讲)。
直观比喻:
-
就像小人滑雪时,只能在雪道表面滑动。
-
如果小人从侧面飞得太快,可能直接飞过雪道而不撞上,这叫做穿透(tunneling)问题。
(这也是为什么滑雪游戏中经常配合使用高精度的物理计算,比如Continuous Collision Detection,连续碰撞检测。)
Edge Collider 2D的一些参数
-
Points(点):一组坐标,定义了线段的形状。
-
Edge Radius(边缘半径):让线段不是无限细,而是像绳子一样有一点点粗度,增加视觉和物理上的厚度。
直观比喻:
-
Points就像你在地图上钉的小旗子,然后用线把小旗子连起来。
-
Edge Radius就像给这根线套上了一层橡皮管,让它有一定的体积,不那么容易漏过去。