Unity引擎2D游戏开发,C#实现人物跳跃
Component内,实现变量参数分栏
private Rigidbody2D rb;
private PhysicsCheck physicsCheck;
private SpriteRenderer spriteRenderer;
public Vector2 inputDirection;
[Header("基本参数")]
public float speed;
public float jumpForce;
在新建的Input Actions中添加跳跃绑定
在2D刚体所绑定的C#代码中调用Input Actions中新建的跳跃动作
-
在unity中,跳跃动作相当于对2D刚体施加Y轴方向的力。因此,增加一个力数值的变量jumpForce。
public float jumpForce;
-
调用`PlayerInputControl`中的Gameplay方法内新建的Jump方法,由于是按下按键即触发,因此使用Jump方法的started事件。然后再将此事件注册给即将在当前C#文件创建的Jump方法
playerInputControl.Gameplay.Jump.started += Jump;
-
在此新创建的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
的值,调整重力加速度,数值越大,受重力影响越大
在创建的脚本中,可以调整Jump Force
的值,调整跳跃的力,数值越大,跳的越高
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?