实现这个效果,我们先要分解一下人物动画,从空中踩中敌人的行为,

从动画的角度看,就是在播放下落动画时(所以也是当y轴速度为负时)与敌人发生碰撞(应付一般情况)

 

private void OnCollisionEnter2D(Collision2D collision)
{
//在下落动画时碰触Enemy(即踩到enemy时,分解为一个下落行为,与下落中碰触)
if (anim.GetBool("falling"))
{
//OnCollision时调用的是整个整体,所以这里是collsion.gameObject.tag而非直接collsion.tag
if (collision.gameObject.tag == "Enemy")
{
Destroy(collision.gameObject);
//踩灭怪物后再次小跳(以达到超级玛丽踩怪后反跳效果)(即再调用一次跳跃)
rb.velocity = new Vector2(rb.velocity.x, jumpforce * Time.deltaTime);
anim.SetBool("jumping", true);
}
}
}

 posted on 2021-04-08 21:06  雨落江州  阅读(381)  评论(0编辑  收藏  举报