Unity 2D横版移动跳跃

这篇具有很好参考价值的文章主要介绍了Unity 2D横版移动跳跃。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

搭建场景

Unity 2D横版移动跳跃

 绿色长方形为地表,红色圆形为玩家

地表挂载碰撞组件

Unity 2D横版移动跳跃

 玩家挂载钢体组件和碰撞组件

Unity 2D横版移动跳跃

 将Collision Detection设置为Continuous,Constraints勾选Freeze Rotation Z;

在Player上创建名为MoveandJump的C#脚本文章来源地址https://www.toymoban.com/news/detail-510873.html

代码实现

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveandJump : MonoBehaviour
{
    private Rigidbody2D rb;
    private Collider2D coli;

    public float speed, jumpForce;//移动速度,跳跃高度
    public Transform groundCheck;//地面检测,判断Player是否落地
    public LayerMask ground;//与那一次层级进行检测

    public bool isGround;//是否在地面的状态,true则在地面,false这在空中

    bool jumpPreesed;//将Update中的玩家输入和在FixedUpdate的跳跃方法连接起来
    int jumpCount;//跳跃次数

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        coli = GetComponent<Collider2D>();
    }

    void Update()
    {
        if (Input.GetButtonDown("Jump") && jumpCount > 0)
        {
            jumpPreesed = true;
        }
    }

    void FixedUpdate()
    {    
        //以groundCheck的位置为圆心,半径为0.1的圆进行检测,判断ground Layer是否在圆内
        isGround = Physics2D.OverlapCircle(groundCheck.position, 0.1f, ground);
        GroundMovement();
        Jump();
    }
    
    //移动
    void GroundMovement()
    {
        float horizontalMove = Input.GetAxisRaw("Horizontal");
        rb.velocity = new Vector2(horizontalMove * speed, rb.velocity.y);
    }

    //跳跃
    void Jump()
    {
        //落回地面恢复跳跃次数
        if (isGround)
        {
            jumpCount = 2;
        }
        //第一次跳跃
        if (jumpPreesed && isGround)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
            jumpCount--;//跳跃次数-1
            jumpPreesed = false;//跳跃代码已执行完毕
        }
        //连跳
        else if (jumpPreesed && jumpCount >0 && !isGround)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
            jumpCount--;
            jumpPreesed = false;
        }
    }
}

到了这里,关于Unity 2D横版移动跳跃的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Unity 2D横版闯关游戏 (JUNGLE RULES)

    Unity 2D横版闯关游戏 (JUNGLE RULES)

    目录 游戏演示 项目内容 (1) 项目内容 项目分析  (1) 游戏策划 (2) 游戏美术 (3) 游戏程序  项目实现 (1) 游戏角色(Player) (2) 小怪(Enemy) (3) UI界面 (4) 摄像机(Camera) (5) 公告板(Billboard) (6) 游戏场景(Scene) 项目源码​​​​​​​                     阿里云盘分享 https://www.aliyu

    2023年04月08日
    浏览(11)
  • unity2D横版游戏教程8-音效

    unity2D横版游戏教程8-音效

    简单介绍一下unity audio,auido包括三个东西,分别是Aduio Listener,Audio Source,Audio Clips。Audio Listener就相当于耳朵,是用来听声音的,Audio Source就相当于播放器,一个音源,可以播放声音,具体播放什么声音就靠Audio Clips 通常Audio Listener只有一个,默认情况下Audio Listener就在Main

    2024年02月08日
    浏览(14)
  • unity 横版过关单向通行实现(PlatformEffector2D)

    unity 横版过关单向通行实现(PlatformEffector2D)

    在 2D 游戏中,处理角色与平台之间的交互是一个常见但复杂的任务。为了简化这一过程,Unity 提供了 PlatformEffector2D 组件,提供了更灵活的方式来定义角色与平台之间的交互行为。 PlatformEffector2D 是 Unity 中的一个 2D 物理组件,用于调整 2D 角色与平台之间的交互行为。通常情

    2024年04月11日
    浏览(7)
  • 4.Unity2D 横版 帧事件+攻击判定+冲砍挑飞+更真实的打击

    4.Unity2D 横版 帧事件+攻击判定+冲砍挑飞+更真实的打击

    总目录 1.攻击碰撞盒的创建 在玩家下面新建两个空物体命名为攻击一和攻击二。然后为两个物体分别添加碰撞盒,根据帧动化来调整碰撞盒位置。并都打开触发器 为俩个攻击盒添加触发器事件  2.帧事件的创建 2.Unity2D 横版 帧动画sprite animation+动画状态机animator+丝滑连击动作

    2023年04月08日
    浏览(13)
  • 15.Unity2D 横版 骨骼动画 之 单张切片图骨骼动画+Aseprite像素画软件

    15.Unity2D 横版 骨骼动画 之 单张切片图骨骼动画+Aseprite像素画软件

      主目录 https://blog.csdn.net/qq_54263076/category_11900070.html?spm=1001.2014.3001.5482 b站视频:骨骼动画 1.直接单图片   骨骼动画绑定(最简单,直接绑定就行) 2.部件分开切片图  骨骼动画绑定(本教程主要讲述) 3.部件多图层   骨骼动画绑定(Aseprite像素画绘图没有psd文件类型,本

    2024年02月10日
    浏览(9)
  • 6.Unity2D 横版 受击反馈+跟随血条+延时/延迟扣血+协程的应用

    6.Unity2D 横版 受击反馈+跟随血条+延时/延迟扣血+协程的应用

    总目录 https://blog.csdn.net/qq_54263076/category_11900070.html?spm=1001.2014.3001.5482  1. 受击反馈 用 Unity 探究 2D 游戏的打击感_技术宅也爱玩游戏的博客-CSDN博客_unity击退 引言这是我毕业设计的一部分emmm……我的毕设和格斗游戏相关,而对于打击感的研究算是其中我比较在意的一环。现在

    2023年04月08日
    浏览(30)
  • Unity进阶提升-2D游戏跳跃手感优化(跳起下落)

    Unity进阶提升-2D游戏跳跃手感优化(跳起下落)

    在进行2D游戏开发时,跳跃是不可缺少的一个重要功能。但是我们在Unity开发时Unity本身的物理引擎并不能提供很好的的手感,下落的时候轻飘飘的,这操作起来显然非常不舒服。所以,我们需要自己对跳跃进行优化,以此来获得更好的手感。我们不难发现,在绝大多数2D游戏

    2024年02月08日
    浏览(7)
  • Unity实现人物移动、旋转、跳跃

    Unity实现人物移动、旋转、跳跃

    1.Player脚本控制人物移动,可单独使用。(人物需添加组件 Box   Collider和Rigidbody ) 2.相机放在人物头部,转动需要带着人物转,相机转动灵敏度和上下转动角度范围根据具体情况配置。 脚本CameraController和Player直接挂载到人物就可以用了。 3. 文件目录(人物final bowser fly,相

    2024年02月04日
    浏览(7)
  • 【Unity小技巧】3D人物移动脚步和跳跃下落音效控制

    【Unity小技巧】3D人物移动脚步和跳跃下落音效控制

    获取人物移动状态 脚步声控制 解释: go 的这个逻辑保证了只有在需要重新设置音频剪辑时才会执行,避免了声音的混叠和中断。如果去除这个逻辑,可能会导致声音播放不正常。 AS.pitch是用来控制音频的音调(pitch)的属性。该属性控制音频的播放速度,1.0 表示正常速度,

    2024年01月22日
    浏览(10)
  • 【用unity实现100个游戏之2】复刻实现经典2d平台跳跃游戏《蔚蓝 Celeste》(附工程源码)

    【视频】:https://www.youtube.com/channel/UCLyVUwlB_Hahir_VsKkGPIA 注意 :本文为学习笔记记录,推荐支持原作者,去看原视频自己手敲代码理解更加深入

    2024年02月08日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包