Unity中2D人物角色有时候会跳的很高是什么情况?

unity2D的人物角色按跳跃键有时候会跳的特别高

代码:


 public float jumpforce=0;

//跳跃 
        if (Input.GetButtonDown("Vertical") && coll.IsTouchingLayers(ground))
        {

           // Input.Getkey(KeyCode.UPArrow)  
            //给Y轴一个跳跃的力
            ri.velocity = new Vector2(ri.velocity.x, jumpforce * Time.deltaTime);
            //跳跃动画
            ani.SetBool("jumping", true);
        }

//向上跳的力我给的是300,正常来说是这么高:

img

正常之外是这么高:

img

有时候直接跳出屏幕了,没关于这个的警告和报错,有没有什么可行的解决办法呀

看起来是执行了两次啊,建议添加个Log看一下,是不是调的很高的时候,这个函数执行了两次。

若是执行了两次的话,那么添加一个状态,当角色在地上的时候可执行,在空中的时候不可以执行就可以了。