Unity引擎2D游戏开发,C#实现人物跳跃

发布时间 2023-12-13 14:21:31作者: 心霖の雨

一、Component内,实现变量参数分栏


[Header("XXXX")]

二、在新建的Input Actions中添加跳跃绑定


三、在2D刚体所绑定的C#代码中调用Input Actions中新建的跳跃动作

  1. 在unity中,跳跃动作相当于对2D刚体施加Y轴方向的力。因此,增加一个力数值的变量jumpForce。
    public float jumpForce;
    
  2. 调用`PlayerInputControl`中的Gameplay方法内新建的Jump方法,由于是按下按键即触发,因此使用Jump方法的started事件。然后再将此事件注册给即将在当前C#文件创建的Jump方法
    playerInputControl.Gameplay.Jump.started += Jump;
    
  3. 在此新创建的Jump方法中,使用AddForce方法对2D刚体施加一个力。

    public void AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);

    第一个参数Vector2,transform.up为世界坐标为基准向上的方向再增加一定数量倍率的增量;

    第二个参数ForceMode2D,即力的模式,此处使用Impulse,则为瞬时增量。

    private void Jump(InputAction.CallbackContext context)
    {
        rb.AddForce(transform.up * jumpForce, ForceMode2D.Impulse);
    }
    

四、调整重力加速度的值,以及JumpForce力的加值

在2D刚体中,可以调整Gravity Scale的值,调整重力加速度,数值越大,受重力影响越大
image

在创建的脚本中,可以调整Jump Force的值,调整跳跃的力,数值越大,跳的越高
image