如果我们把移动,跳跃等操作都放在Update函数里面我们会发现有时候我们按下跳跃键的时候角色并不会响应,对手感有很大的影响,所以我们结合Update和FixedUpdate实现准确的跳跃响应。

我们知道我们角色的移动,跳跃操作一般都要放在每一帧都要执行的函数里,每一帧执行的函数有很多,比如Update,LateUpdate,FixedUpdate等。LateUpdate我们暂且不提,简单说一下另外两个。

首先是Update,每一帧都会调用Update函数,这是帧更新的主要函数,但是我们要知道,对于不同的电脑每一秒执行的帧数是不一样的,比如一些比较老的电脑一秒执行30帧,好一点的电脑一秒执行40帧,所以为了要让不同的电脑也能实时的检测按键的响应,我们就要用到FixedUpdate函数。

FixedUpdate是一个固定的时间来执行的,如果没有修改的情况下是0.02秒执行一次FixedUpdate函数,也就是说一秒钟执行50次,我们也可以修改间隔时间,但是注意,这个值只是一个请求,机子可能达不到这个速度。因此,Update和FixedUpdate其实是完全独立的两个函数。当Update执行了一次时,FixedUpdate可能已经执行了两次、三次甚至一次都没有执行过。根据官方手册,所有和物理有关的都会放在FixedUpdate里面,比如Rigidbody。

我们介绍Update和FixedUpdate就是因为实现完美跳跃就是需要通过这两个函数实现的,我们把GetButtonDown放在Update里能够确保在不同的机器上我们按下跳跃键的时候,电脑可以给我们一个实时的那一帧的调用这个按键的反馈。而FixedUpdate会在固定时间执行,来检测按键按下的这个命令是否被执行。所以通过结合Update和FixedUpdate来实现这个操作。

using UnityEngine;public class Test:MonoBehaviour{
bool action = false;
private Rigidbody2D rb;
public float jumpForce;
void Start(){
rb=GetComponent<Rigidbody2D>();
}void Update(){if(Input.GetKeyDown(KeyCode.Space)){action = true;}}void FixedUpdate(){if(action){rb.velocity=new Vector2(rb.velocity.x,jumpForce);action = false;}}
}

上面,我们用一个boolean值来控制开关。由于Update每一帧都会调用,因此可以保证所有的输入都可以被响应。

当然这只是一份伪代码,因为我们并没有考虑地面或者多段跳等情况,所以具体的代码还有具体情况分析

unity2D横版游戏跳跃实时响应相关推荐

  1. unity2D横版游戏教程-2 代码实现

    接下来就是写代码的时候 我们创建一个文件夹用来存我们的脚本,名字就叫Scripts,在里面右键->Create->C#Script,这样就创建好了一个脚本 直接将这个脚本拖给我们Hiera ...

  2. unity2D横版游戏教程终章-主菜单和暂停菜单

    最后一节我们做一下主菜单和暂停菜单 我们创建一个新的scene,命名为Menu,这个就是主菜单场景 我们双击Menu进去设置一下我们的UI 我们先添加一下Canvas,在Canvas下面创建连个Pan ...

  3. Unity2D横版游戏地形生成

    演示视频 横版地形生成 功能: 将地形素材赋值给脚本,脚本会生成对应的地形素材,可以控制生成素材的高度,生成的时间间隔,是否每次随机时间生成,会有一个范围值来进行控制: Mountain 01_tra ...

  4. Unity2D横版游戏开发(一) 人物的移动和跳跃

    目录 导入素材 人物移动 人物跳跃 我使用的Unity版本为2020.3.13f1c1,代码编辑器VSCode 导入素材 素材均来自https://itch.io/的免费素材 我选择的是https:/ ...

  5. unity2D横版游戏教程-3 Cinemachine镜头移动

    Cinemachine是官方提供的摄像机工具组件,这个工具的用处还蛮大的,不过我们这里就简单说一下在2D游戏里面怎么实现镜头跟踪的效果,这里我们用Cinemachine代替使用Main Camera ...

  6. unity2D横版游戏教程-1 让人物动起来

    在看完了麦扣老师的小狐狸的视频后,为了巩固练习,我另外找一个素材包来练手,顺便写成一个教程让自己更加熟练,同时当自己遗忘时可以回头查阅.另外,这个教程我写的非常详细,萌新也可以学习.有什么不对的地方或 ...

  7. unity2D横版游戏教程8-音效

    简单介绍一下unity audio,auido包括三个东西,分别是Aduio Listener,Audio Source,Audio Clips.Audio Listener就相当于耳朵,是用来听声音 ...

  8. unity2D横版游戏教程5-UI

    UI是User Interface的缩写,也就是用户界面.像登录界面的按钮,游戏的得分,暂停的按钮等都是UI 之前我门创建一个Cherries变量来计算我们收集樱桃的数量,现在我们创建一个UI来显示我 ...

  9. unity2D横版游戏教程10-场景控制

    我们让角色掉出地图时重置游戏 我们在Hierarchy那里创建一个一个空项目,命名为DeathLine,也就是死亡线,我们给它添加一个盒体碰撞器,调整一下碰撞器 我们要把这个碰撞器当做触发器使用,所以 ...

最新文章

  1. 【深度学习笔记】关键点检测——标签(Ground Truth)构建
  2. Xamarin使XRPC实现接口/委托远程调用
  3. 当深度学习走进高考考场,会发生什么!!
  4. HTML 列表中的dl,dt,dd,ul,li,ol区别及应用
  5. series、dataframe转为tensor格式数据
  6. sja1000 can控制器波特率计算方法
  7. C语言2级题pdf百度云,C语言二级考试试题.pdf
  8. Linux搭建可道云网盘
  9. 运动控制器的自定义G代码编程应用
  10. 解答腾讯会议的常见新手问题
  11. 720P、1080P、2K、4K的区别
  12. 系统应用和第三方应用跳转
  13. 喜欢这样的游戏---流畅的俯视坦克射击游戏
  14. Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)...
  15. HTML春节贺卡,HTML5+CSS3实现春节贺卡
  16. 通达信破底翻选股公式,用缠论底分型进行优化
  17. MATLAB仪表表盘数字识别解析
  18. 阿里Buy+技术尚不完善,VR购物距离我们还很遥远
  19. mysql查询排除字段_mysql查询表,指定排除字段
  20. 研报集纳|AI助力生命科学创新范式变革 正突破新药研发“双十”困局

热门文章

  1. 一个拼图软件项目Demo
  2. 经典时间片轮转RR算法C语言实现
  3. 用java语言如何编写圆面积_用java语言编写一个圆面积的求法
  4. DEV gridcontrol 汉化类
  5. 中电丽声推出全新一代硅麦
  6. 深度解析dubbo网络传输层Transporter
  7. 一天一图学Python可视化(1):线性回归图
  8. lcs算法c语言代码,LCS算法
  9. 工作的未来是DAO,收入的未来是「X-to-earn」 |链捕手
  10. windows下查看和关闭端口