现在我们的跳跃还有一个小问题,当我们跳到墙上,持续按着方向键,人物就会卡在墙上!
因为我们的重力和碰撞都是依赖给人物添加的rigidBody 那么这个物体就有了质量,当跳到墙上的时候,有了一个给墙的力,和墙接触也就有了摩擦力!
我们只需要创建一个 Physics Material 并且设置材质的摩擦力为0变成一个光滑的材质,那么就不会卡在墙上了!
在Settings中创建一个PhyiscsMaterials2D
文件夹,专门存储PhyiscsMaterials
的材质文件!
然后右键 选择create
>>> 2d
>>>Phyiscs Material 2D
命名为Smooth
(光滑的)
然后修改这个材质的摩擦力为 0
**因为物体之间还是碰撞体的交互!**所以我们把这个Smooth
的材质添加到Player的胶囊碰撞体上!
再来测试一下
可以看到的确不会卡死在墙面上,但是还是会因为地形受到一些卡顿,然后空格连续摁的情况下会发生连跳!!当然也可以说这很真实!哈哈哈,你可以保留这个特性!
如果你想让他很丝滑的话,那么还需要修改关于碰撞体的一个细节!
选中我们的地形
可以看到白线表示我们的碰撞体边缘!是根据我们的素材图片生成的碰撞体,就是坑坑洼洼的!
因为我们在创建规则瓦片地图的时候,选择碰撞体的属性为Sprite
这种方式他会按照我们选择的Sprite生成碰撞体!在配置Collider Sprite时,Unity会自动根据所选的Sprite生成碰撞体,如果该Sprite本身就存在凹凸不平的纹理或形状,那么生成的碰撞体也会表现出相应的不平整。
所以我们尽量配置边缘的 tile map为网格 Gird 的规则碰撞体!
相关的瓦片设置完之后!碰撞体的现在就是一条直线了
然后再去测试我们的靠墙跳跃!
这样就绝对不会卡在墙上了!完美解决!
评论区