目 录CONTENT

文章目录

11.《勇士传说》.改变材质来优化靠墙跳跃人物卡墙的问题

Hello!你好!我是村望~!
2023-04-14 / 0 评论 / 4 点赞 / 307 阅读 / 595 字
温馨提示:
我不想探寻任何东西的意义,我只享受当下思考的快乐~

现在我们的跳跃还有一个小问题,当我们跳到墙上,持续按着方向键,人物就会卡在墙上!

Apr-14-2023 17-18-16

因为我们的重力和碰撞都是依赖给人物添加的rigidBody 那么这个物体就有了质量,当跳到墙上的时候,有了一个给墙的力,和墙接触也就有了摩擦力!

image-20230414172459849

我们只需要创建一个 Physics Material 并且设置材质的摩擦力为0变成一个光滑的材质,那么就不会卡在墙上了!

在Settings中创建一个PhyiscsMaterials2D文件夹,专门存储PhyiscsMaterials的材质文件!

然后右键 选择create >>> 2d>>>Phyiscs Material 2D命名为Smooth(光滑的)

image-20230414173624035

然后修改这个材质的摩擦力为 0

image-20230414173814022

**因为物体之间还是碰撞体的交互!**所以我们把这个Smooth的材质添加到Player的胶囊碰撞体上!

再来测试一下

Apr-14-2023 17-43-11

可以看到的确不会卡死在墙面上,但是还是会因为地形受到一些卡顿,然后空格连续摁的情况下会发生连跳!!当然也可以说这很真实!哈哈哈,你可以保留这个特性!

如果你想让他很丝滑的话,那么还需要修改关于碰撞体的一个细节!

选中我们的地形

image-20230414174720841

可以看到白线表示我们的碰撞体边缘!是根据我们的素材图片生成的碰撞体,就是坑坑洼洼的!

因为我们在创建规则瓦片地图的时候,选择碰撞体的属性为Sprite

image-20230414174905672

这种方式他会按照我们选择的Sprite生成碰撞体!在配置Collider Sprite时,Unity会自动根据所选的Sprite生成碰撞体,如果该Sprite本身就存在凹凸不平的纹理或形状,那么生成的碰撞体也会表现出相应的不平整。

所以我们尽量配置边缘的 tile map为网格 Gird 的规则碰撞体!

image-20230414175943672

相关的瓦片设置完之后!碰撞体的现在就是一条直线了

image-20230414180157321

然后再去测试我们的靠墙跳跃!

Apr-14-2023 18-03-39

这样就绝对不会卡在墙上了!完美解决!

4

评论区