(M)unity人物跳跃

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)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值