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)

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

    2023年04月08日
    浏览(38)
  • 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日
    浏览(30)
  • unity 横版过关单向通行实现(PlatformEffector2D)

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

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

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

    2023年04月08日
    浏览(34)
  • 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日
    浏览(32)
  • 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游戏跳跃手感优化(跳起下落)

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

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

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

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

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

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

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

    2024年02月08日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包