Unity 2D游戏跳跃优化
2D游戏跳跃下落速度问题
有些2D游戏会感觉到向上跳跃和下落速度不一致,感觉下落时更干脆一些,比如马里奥,不过也跟具体的项目需求手感有关系。
直接上代码。下面是优化下落速度手感的代码。
using UnityEngine;public class BetterJump : MonoBehaviour
{public float fallMultiplier = 2.5f; //下落速度倍数public float lowJumpMultiplier = 2f; //长按跳跃bool isPressJump;Rigidbody2D rb;private void Awake(){rb = GetComponent<Rigidbody2D>();}public void Update(){if(Input.GetButton("Jump")){isPressJump = true;}else{isPressJump = false;}}public void FixedUpdate(){if(rb.velocity.y < 0) //下落速度{rb.velocity += Vector2.up * Physics2D.gravity.y * (fallMultiplier - 1) * Time.deltaTime;}else if (rb.velocity.y > 0 && !isPressJump) //不按跳跃时减缓跳跃(如马里奥){rb.velocity += Vector2.up * Physics2D.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime;}}
}
跳跃手感优化
如果操作都放在Update中有时会出现跳跃手感不一致的情况。
优化跳跃手感的核心思路就是按键检测放在Update中,物理相关的放到FixedUpdate中。
代码示例
public Transform groundCheck; //玩家脚底public LayerMask ground; //地面layerpublic float jumpForce;public bool isGround, isJump, isJumpPressed;private void Update(){if(Input.GetButtonDown("Jump")){isJumpPressed = true;}}private void FixedUpdate(){isGround = Physics2D.OverlapCircle(groundCheck.position, 0.1f, ground);if (isJumpPressed && isGround){rb.velocity = new Vector2(rb.velocity.x, jumpForce);isJumpPressed = false;}}
Unity 2D游戏跳跃优化相关推荐
- Unity 2D游戏开发教程之游戏中精灵的跳跃状态
Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...
- Unity 2D游戏开发快速入门(内部资料)
Unity 2D游戏开发快速入门(内部资料) 试读样张:http://pan.baidu.com/s/1hqh5oqw Unity 2D游戏开发快速入门4 前 言 Unity是一款综合的游戏开发工具 ...
- 【Unity】Unity 2D游戏开发(一)U2D基础功能
文章目录 Unity 2D游戏开发基础知识 Animation动画 SortingLayer层排序 Physics 2D物理2D Rigidbody 2D刚体 示例 1.点击鼠标发出子弹 2.子弹打中 ...
- Unity 2D游戏开发教程之摄像头追踪功能
Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...
- Unity 2D游戏开发教程之为游戏场景添加多个地面
Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...
- Unity 2D游戏开发教程之精灵的死亡和重生
Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...
- Unity 2D游戏开发教程之2D游戏的运行效果
Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...
- Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏
Unity 2D游戏开发快速入门第1章创建一个简单的2D游戏 即使是现在,很多初学游戏开发的同学,在谈到Unity的时候,依然会认为Unity只能用于制作3D游戏的.实际上,Unity在2013年发布 ...
最新文章
- Js中最常见的异常捕捉 TryCatch
- js数据结构和算法(8)-图
- 函数不可访问_关于可重入函数
- spring boot druid 监控没有sql记录
- leetcode617. 合并二叉树(dfs)
- windows(win7,win8,xp)hosts文件找不到原因分析及解决方法
- 云服务器饥荒_运用双腾讯云搭建《饥荒》多人联机服务器
- A Hierarchical Deep Temporal Model for Group Activity Recognition
- pythonselenium教程模拟鼠标和键盘_【02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!...
- Sigmod/Softmax变换
- 弹性力学方程 有限差分法matlab,泊松方程的有限差分法的MATLAB实现
- 阿里云云平台的物理安全防御措施
- 魔兽争霸官方平台支持Linux,首页-魔兽争霸官方对战平台
- 论剑乌镇-热点轮换谁能屹立不倒
- 1138 Postorder Traversal
- 国外服务器网站打开速度慢,使用国外服务器时访问为什么很慢?
- 测试/开发程序员值这么多钱么?“我“不会愿赌服输......
- 信息系统项目管理师第四版(最新)重点(背诵)内容概览
- ADOBE pr000的下载安装+基本操作
- 985大学计算机专业起薪,985名校毕业生有多值钱?看完这份大学毕业生薪酬榜你就知道了...
热门文章
- NX二次开发-UFUN替换组件UF_ASSEM_substitute_component
- deepin安装python3.8.1_deepin安装Python3.8以及使用pip3遇到的问题
- 基于微信小程序的旅游系统设计与实现(毕业论文)
- 英语四级真题作文 计算机,英语四级作文 Computers-计算机
- ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络...
- 新星微前端MicroApp的基础教程
- bert预训练实战篇-持续更新
- 2021“快手光合创作者大会”背后的服务新理念
- y70.第四章 Prometheus大厂监控体系及实战 -- Prometheus监控介绍(一)
- 【送书福利-第十期】清华社 IT BOOK 多得图书活动 ~!