unity2D横版游戏跳跃实时响应
如果我们把移动,跳跃等操作都放在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横版游戏跳跃实时响应相关推荐
- unity2D横版游戏教程-2 代码实现
接下来就是写代码的时候 我们创建一个文件夹用来存我们的脚本,名字就叫Scripts,在里面右键->Create->C#Script,这样就创建好了一个脚本 直接将这个脚本拖给我们Hiera ...
- unity2D横版游戏教程终章-主菜单和暂停菜单
最后一节我们做一下主菜单和暂停菜单 我们创建一个新的scene,命名为Menu,这个就是主菜单场景 我们双击Menu进去设置一下我们的UI 我们先添加一下Canvas,在Canvas下面创建连个Pan ...
- Unity2D横版游戏地形生成
演示视频 横版地形生成 功能: 将地形素材赋值给脚本,脚本会生成对应的地形素材,可以控制生成素材的高度,生成的时间间隔,是否每次随机时间生成,会有一个范围值来进行控制: Mountain 01_tra ...
- Unity2D横版游戏开发(一) 人物的移动和跳跃
目录 导入素材 人物移动 人物跳跃 我使用的Unity版本为2020.3.13f1c1,代码编辑器VSCode 导入素材 素材均来自https://itch.io/的免费素材 我选择的是https:/ ...
- unity2D横版游戏教程-3 Cinemachine镜头移动
Cinemachine是官方提供的摄像机工具组件,这个工具的用处还蛮大的,不过我们这里就简单说一下在2D游戏里面怎么实现镜头跟踪的效果,这里我们用Cinemachine代替使用Main Camera ...
- unity2D横版游戏教程-1 让人物动起来
在看完了麦扣老师的小狐狸的视频后,为了巩固练习,我另外找一个素材包来练手,顺便写成一个教程让自己更加熟练,同时当自己遗忘时可以回头查阅.另外,这个教程我写的非常详细,萌新也可以学习.有什么不对的地方或 ...
- unity2D横版游戏教程8-音效
简单介绍一下unity audio,auido包括三个东西,分别是Aduio Listener,Audio Source,Audio Clips.Audio Listener就相当于耳朵,是用来听声音 ...
- unity2D横版游戏教程5-UI
UI是User Interface的缩写,也就是用户界面.像登录界面的按钮,游戏的得分,暂停的按钮等都是UI 之前我门创建一个Cherries变量来计算我们收集樱桃的数量,现在我们创建一个UI来显示我 ...
- unity2D横版游戏教程10-场景控制
我们让角色掉出地图时重置游戏 我们在Hierarchy那里创建一个一个空项目,命名为DeathLine,也就是死亡线,我们给它添加一个盒体碰撞器,调整一下碰撞器 我们要把这个碰撞器当做触发器使用,所以 ...
最新文章
- 【深度学习笔记】关键点检测——标签(Ground Truth)构建
- Xamarin使XRPC实现接口/委托远程调用
- 当深度学习走进高考考场,会发生什么!!
- HTML 列表中的dl,dt,dd,ul,li,ol区别及应用
- series、dataframe转为tensor格式数据
- sja1000 can控制器波特率计算方法
- C语言2级题pdf百度云,C语言二级考试试题.pdf
- Linux搭建可道云网盘
- 运动控制器的自定义G代码编程应用
- 解答腾讯会议的常见新手问题
- 720P、1080P、2K、4K的区别
- 系统应用和第三方应用跳转
- 喜欢这样的游戏---流畅的俯视坦克射击游戏
- Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)...
- HTML春节贺卡,HTML5+CSS3实现春节贺卡
- 通达信破底翻选股公式,用缠论底分型进行优化
- MATLAB仪表表盘数字识别解析
- 阿里Buy+技术尚不完善,VR购物距离我们还很遥远
- mysql查询排除字段_mysql查询表,指定排除字段
- 研报集纳|AI助力生命科学创新范式变革 正突破新药研发“双十”困局