版本信息:2020.3
卡墙不掉落
成因:collider模仿真实世界,所以当碰到墙的时候恰好还按着左右键就会像你把小物块按在墙上,会产生摩擦力,所以就卡住不会掉下去了。
解决方法:给碰撞体添加没有摩擦力的材质
先新建一Physic material 2D,这里我遇到一个问题:官方提示Assets > Create > Physics Material 2D 但是我的Create里面没有Physics Material 2D
后来我发现这个版本里面Physics Material 2D被统一移到了2D中,所以应该是Assets >2D> Create > Physics Material 2D
把摩擦力改成0
赋值给player的碰撞体的material即可
但是这会有个bug:假如游戏开始的时刻,玩家是从空中落下的(如下图),那么就会有一个力,这个力会让玩家有一个左右移动的初始速度,恰好地面的材质没有摩擦力。这样就会形成玩家落地后自己就开始慢慢移动的bug,暂时没有看解决方法,欢迎留言
无限跳跃
解决方法:写脚本 判断条件:只有player脚踩在地上的才可以跳
加个判断即可
//跳跃
if(Input.GetButtonDown("Jump"))
{
if(Coll.IsTouchingLayers(Groud))//Coll是物体的碰撞体
{
rb.velocity=new Vector2(rb.velocity.x,Jumpforce*Time.deltaTime);
Anim .SetBool("jumping",true);
Anim .SetBool("idle",false);
}
}
不过这个也有个bug:就是踩到墙也会判断是踩到了地面,然后就又可以再次跳跃,希望后期可以解决