2D游戏角色移动
void Start() { rb = GetComponent<Rigidbody2D>(); anim = GetComponent<Animator>(); } void FixedUpdate() { Movement(); jump(); SwitchAnimation(); } void Update() { if (Input.GetButtonDown("Jump") && jumpCount > 0) { jumpPressed = true; } } void Movement() { horizontalMove = Input.GetAxis("Horizontal"); switchFace = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector2(horizontalMove * speed, rb.velocity.y); if (horizontalMove != 0) { anim.SetFloat("speed", Mathf.Abs(horizontalMove)); } if (switchFace != 0) { transform.localScale = new Vector3(-switchFace, 1, 1); } } void jump() { isOnGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckDistance, ground); if (isOnGround) { jumpCount = 2; isJump = false; } if (isOnGround && jumpPressed) { isJump = true; rb.velocity = new Vector2(rb.velocity.x, jumpForce); jumpCount--; jumpPressed = false; } else if (!isOnGround && jumpPressed && jumpCount > 0) { rb.velocity = new Vector2(rb.velocity.x, jumpForce); jumpCount--; jumpPressed = false; } }
此为2D角色实现二段跳的代码,具体的动画切换可根据需求进行添加
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签