关于2D 横板跑酷游戏的难点请教

最近在做一款2D 横板的跑酷游戏,遇见头疼的几个问题
项目需求
1被障碍物阻挡会被障碍物往后挤,这个跑酷游戏中常见
2.其他需求跟常见2D 横板差距不大

我的思路
1.被遮挡的那个,我想的是用刚体组件来做,因为游戏本身的地面也会有高低起伏,所以也需要物体效果
2.玩家这边自己去做状态机模拟,跳跃,奔跑,下坠(使用碰撞器回调函数处理),不使用刚体中的效果,然后碰撞分组加tag,
3.场景中元素循环(一开始想做场景移动的,后来场景元素都是静态刚体,不跟随父节点位置移动而移动,于是我就改成双相机 一个UI相机 一个场景相机跟着走)

现在的问题在于,我修改人物刚体组件的位置会导致跳跃后无法与地面相撞,直接穿过,并且不触发碰撞回调函数
然后我修改为 给人物刚体施加力,但是人物质量是0,施加力不起效果,我便使用的施加冲量的办法,但是效果并不好,所以我想问问大家做2D 横板跑酷的方案是什么?

不需要用刚体吧,模拟重力就好了吧

不用刚体还要模拟碰撞,我一开始就是没有用刚体,人物动作也好做,模拟下坠也做出来了,但是障碍物会穿,不过我刚刚想到了,在障碍物左面加个碰撞器,人物碰到速度变成0,离开的时候再把速度改回来似乎就可以了,有点头疼,刚体真的做不了,改变刚体位置会出问题,刚体在一起还会不断的弹

碰撞也可以不用啊,直接判断距离,只要分出是左侧还是上下边碰到就行了

碰撞也不用?那怎么做?要不断轮询玩家位置吗?这个计算量有点大吧

物理引擎也是不断update计算的

他刚说的不是这个,是碰撞到以后,计算位置,看人物在哪边,这个就简单多了

单纯的计算包围盒的相交就好了,可以用Intersection辅助类来计算,物理引擎底层用的也是这个

1赞

物理效果的跑酷估计很不错。
使用物理引擎,质量,弹性这些都要设置好啊,控制刚体需要通过rigidbody才行,不然可能导致穿透。
控制刚体,可以直接改变刚体的velocity啊,不一定非要模拟f=ma的过程。