1.添加jump的input配置,多设备执行跳跃
对于键盘来说点击空格
2.对于人物来说需要施加一个跳跃的力
①关于施加的力的跳跃示例:
Rigidbody2D.AddForce
//public void AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);
rb2D.AddForce(transform.up * thrust, ForceMode2D.Impulse);
ForceMode2D.Impulse:
Add an instant force impulse to the rigidbody2D, using its mass
这种力的方式会被物体的重量影响
②跳跃是一个不需要持续执行的动作,只有在按下空格时候会产生动作
(相比起需要持续不断的获得键盘输入的左右方向使用update)
只需要获取按键被按下的时刻产生跳跃
事件的添加,单次执行的函数需要精准在started时刻,(perform持续,cancel按键抬起时刻,started刚刚按下)
private void Awake()
{
rb = GetComponent<Rigidbody2D>();
inputControl = new PlayerInputControl();
//jump事件的注册,将jump函数方法添加到按键按下的那一刻
inputControl.Gameplay.Jump.started += Jump;
}
③生成跳跃函数方法
private void Jump(InputAction.CallbackContext obj)
{
rb.AddForce(transform.up * JumpForce, ForceMode2D.Impulse);
}
④,设置合适的跳跃的力(16)和重力scale(4)