学习资源:B站 M_Studio《Unity教程2D入门》11
Unity Assets:Sunnyland
Day6
Bug1: 角色跳跃后卡墙不掉落
成因:collider模仿真实世界,所以当碰到墙的时候恰好还按着左右键就会像你把小物块按在墙上,会产生摩擦力,所以就卡住不会掉下去了。
解决方法:给碰撞体添加没有摩擦力的材质
先新建一Physic material 2D,这里可能会遇到一个问题:官方提示Assets > Create > Physics Material 2D 但是我的Create里面没有Physics Material 2D
2020版本里面,Physics Material 2D被统一移到了2D中,所以应该是Assets >2D> Create > Physics Material 2D
把摩擦力改成0
赋值给player的头部碰撞体的material即可
Bug2:无限跳跃
解决方法:写脚本
添加一个判断条件:只有player脚踩在地上的才可以跳
//角色跳跃
if(Input.GetButtonDown("Jump") && coll.IsTouchingLayers(ground))
{
rb.velocity = new Vector2(rb.velocity.x, jumpforce * Time.deltaTime);
anim.SetBool("isJumping", true);
anim.SetBool("isIdle", false);
}
不过这个也有个bug:就是踩到墙也会判断是踩到了地面,然后就又可以再次跳跃,希望后期可以解决。