通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D

【Unity入门计划】基本概念(1)-2D刚体Rigidbody 2D Unity 2D刚体的学习记录,包括2D刚体的作用、2D刚体的类型、面板属性都有哪些等。 阅读详情




    

  引子
 这次我们就通过Flappy Bird这个事例来讲解一下刚体和碰撞体在游戏中的具体应用。相关代码可以参考Flappy Bird的源码。
  认识RigidBody
  

  当RigidBody2D的质量属性被设置为0时,刚体的质量变为无限大,此时刚体相当于静态刚体,永远一动不动。但是在Unity中你是无法把一个RigidBody2D的质量设置为0的,所以,当你想创建一个静态刚体时,只需要创建碰撞器,而不需要创建RigidBody2D。
  当我们勾选了is Kenamatic选项时,这个RigidBody2D就不再受物理引擎控制,我们这时候需要通过Transform来控制RigidBody2D的移动,这个选项经常在脚本里对其进行设置。
  注意当Gravity Scale设置为0时,该刚体不再受重力影响。
  认识Collider2D
  在Add Component选项中点击添加Physics2D中的Collider2D即可添加一个碰撞器,碰撞器有以下三种:
  BoxCollider2D:盒状碰撞器,一般为矩形。
  CircleCollider2D:圆形碰撞器。
  PolygonCollider2D:多边形碰撞器
  我们在为一个2D GameObject添加一个Collider时,这个Collider会自动选择最合适的大小,但是你可以使用Shift+鼠标左键对Collider的边界进行调整。在多边形中,还可以通过Ctrl+鼠标左键来删除某个多边形顶点。
  当然,针对同一个刚体,我们可以为这个刚体添加多个碰撞提来构造更加复杂的碰撞结构,在官方的岩石Demo  2D Platformer中你可以看到相应的事例。
  另外,我们可以通过将动画和刚体的运动结合的方式来构建更加有趣的运动效果,通过Transform的变换和通过RigidBody的变换不一定非得是必取其一的,关于动画的知识可以看看我的这篇博客:【Unity3D基础教程】给初学者看的Unity教程(三):通过制作Flappy Bird了解Native 2D中的Sprite,Animation。

  关于Is Trigger
  如果对一个碰撞器勾选了Is Trigger选项,它就不会与其他没有勾选Is Trigger的碰撞器发生刚体碰撞,而会发生"Trigger 碰撞",也就是说,这时碰撞时发送的消息是Trigger消息,而不是Collision消息,相应地在脚本中我们要对OnTriggerEnter进行重载,而不是对OnCollisionEnter进行重载。
  下图对Collision和Trigger进行了总结,在分别勾选某些属性时,都会发送哪些消息:
  





Unity 2D 平台类游戏 人物移动 Rigidbody2D详解及其常用API 通常使用刚体与碰撞体共同构成人物移动的物理系统。 有这么几点需要注意: 1、动态刚体一旦与一个没有弹性的碰撞体碰撞了后,那么其速度立刻变为0,并且不会反弹回来,没有其他操作,其速度一直为0,并且只有动态刚体才能与其他的碰撞体发生反应,调用OnColliderEnter和OnTriggerEnter。 2、动态刚体使用AddForce,它真的应用了物理模拟。也就是说,F*S=0.5*m*V^2... 阅读详情

相关推荐

Unity中的Collider、Rigidbody2D

Collider、Rigidbody2DCollider碰撞器Rigidbody2D 2D刚体 Collider碰撞器 顾名思义,碰撞器就是用来检测碰撞的,绘好地图后需要给地图加上碰撞器 加碰撞器前: 加碰撞器后: 这样每个像素都会有碰撞器熟悉,可以检测碰撞,但一个一个检测容易出bug,所以一般使用Composite 使用后: 使用后就不会产生角色卡在墙上的bug了… 好的 既然地图有了碰撞检测,我们还得给角色加上碰撞器,这样碰撞器才能检测碰撞 这里角色使用的是Box Collider,框体碰撞器,

私が悪いのではなく、この世界が悪いのです 967

【Unity学习笔记01:2D物理系统(一)】

记录一下这段时间学习和实践Unity关于2D物理系统的心得体会,单纯的Manual翻译就不放上来了,主要记录一下官方手册未提及或不够清楚,或容易误解混淆的知识点。

VandheerLorder的博客 1133

实现Unity2D游戏中跳跃功能和相关问题解决

一、跳跃功能基本实现 二、跳跃bug解决 三、跳跃优化 一、跳跃功能基本实现 在unity中我们要实现跳跃功能基本依赖代码实现。在这里我们先构建场景,笔者在这里使用tilemap构建地面,创建正方形代表物体。如图所示 我们要为其添加代码,我在这创建名为Control.cs的C#脚本,用来控制正方形的行为,将其绑定到正方形组件上,同时为正方形添加rigidbody2d和boxcollider组件,将rigidbody2d中z轴锁定。并且也为tilemap添加组合碰撞体和tilemapcoll

m0_66128565的博客 1万+

Unity组件大全之 2D物理 |(70)Box Collider 2D 盒子碰撞体

Box Collider 2D 是 Unity 中的一种 2D 碰撞体组件,它为 2D 游戏对象定义了一个矩形的碰撞区域。这个区域可以用来检测与其他碰撞器的交互,比如碰撞、触发器等。Box Collider 2D 是所有碰撞器中最简单和常用的一种,因为它能有效地进行碰撞检测,且对性能影响较小,非常适合用来处理基本的物理互动和碰撞检测。

Unity打怪升级 2993

Unity3D游戏开发之详解 Animation类和Animator类

Unity3D游戏开发之详解 Animation类和Animator类 Animation类 animation组件用于播放动画。可以指定动画剪辑到动画组件并从脚本控制动画播放。在Unity的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面。 如果想播放一个简单的动画,可以使用Animation.Play;如果想在动画之间交叉淡入,可以使用Ani

1万+

Cylinder2dflowDRL20210316:Cylinder2dflowDRL20210316

Cylinder2dflowDRL20210316 Cylinder2dflowDRL20210316

[ 游戏开发日记with Unity ] 首先,认识你自己,或者说Player吧。 有关于Rigidbody2D和Collider的一些使用知识

本文介绍了在Unity中的Rigidbody2D以及Collider的使用必备知识以及一些注意事项,是我在最近的学习中希望总结的一些知识,如有误请指出,我们一起学习。

Description from another dimension 1728

WorkBuddy实战技巧:搭建高效AI工作台与自动化流程

在数字化办公场景中,AI工作台正逐渐成为提升个人与团队效率的关键工具。它不同于简单的聊天机器人,而是通过集成技能包(Skill)、自动化触发与文档处理能力,把重复性任务如信息提取、周报生成、数据表格整理等变为标准化流程。其核心原理在于将用户需求拆解为可执行的指令链,并借助本地脚本、API调用及定时任务实现“对话即操作”的智能协作。这种技术价值不仅适用于程序员,更惠及运营、客服、行政、科研等日常与文字数据打交道的群体。从自动签到、会议纪要,到批量处理Excel与合同要点提取,AI工作台的应用场景已覆盖多个高频

weixin_42547431的博客 332

Unity性能优化——Rigidbody2D详解

在移动或旋转一个物体时,往往会直接使用Transform来执行这些操作。比如使用如下代码来移动一个GameObject: void Update(){ this.transform.Translate (Vector3.left * speed * Time.deltaTime); } 这种方法对于不具物理特性的GameObject来说,是可行的。但是一旦G...

SerenaHaven的博客 4万+

Qt Tab Widget 实战:如何打造一个可动态增删的标签页管理器(附完整代码)

本文深入探讨了使用Qt框架中的Tab Widget控件构建动态标签页管理器的实战方法。通过分析动态增删的核心挑战,提供了完整的C++代码示例,涵盖信号槽机制、页面生命周期管理、上下文菜单实现以及状态持久化等关键功能,帮助开发者打造高效、用户友好的桌面应用界面。

bb456的博客 1042

准备生日礼物

摘要: 题目要求统计某月份需要准备的员工生日礼物数量。输入包括目标月份、员工姓名列表和对应的生日列表(格式为Year/Month/Day)。需处理重复员工(以最后一次录入为准),统计该月生日的员工人数。示例1中5月有3名员工生日,输出3;示例2中10月有6名,输出6。解题关键在于使用哈希表去重(以员工姓名为键),拆分生日字符串提取月份进行匹配。代码实现(C++/Java/Python)均遵循以下步骤:读取输入、哈希去重、解析月份并统计目标月份人数。时间复杂度为O(n),空间复杂度O(n)。

面试高手的博客 297

【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D...

作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明。如果你喜欢这篇文章,请点【推荐】。谢谢! 引子 在第一篇文章【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics我已经讲过了一些关于刚体和碰撞的关系,这次我们就通过Flappy ...

weixin_30900589的博客 98

多组学联合高级Mantel-test热图

对应的是「metabo」中物质间的相关性热图,单元格色块颜色表示相关系数大小,橙色表示+相关,绿色表示-相关;单元格内的数值表示相关性值大小,星号表示显著性。双组学(微生物组/ 转录组/代谢组等两两组合)关联分析,可视化组学特征间的关联显著性、强度及相关方向。表示<trans>与<metabo>中物质的Mantel test结果。表示整体相关的系数,连线颜色表示相关系数的显著性检验结果。宿主-微生物互作、疾病多组学机制、环境-生物多组学关联。为物质名称,不允许存在空值、重复值。

多组・学・多组学 360

Unity3D基础教程】(四):通过制作Flappy Bird了解Native 2D...

【狗刨学习网】 引子 在第一篇文章【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics我已经讲过了一些关于刚体和碰撞的关系,这次我们就通过Flappy Bird这个事例来讲解一下刚体和碰撞体在游戏中的具体应用。相关代码可以参考Flappy Bird的源码。 认识RigidBody

995

【Bug已解决】codex: conversation context window exceeded / Token limit reached — CodeX CLI 上下文窗口超限解决方案

CodeX CLI 上下文窗口超限(context_length_exceeded)的解决方案,含开新会话、更大窗口模型、精简提示与限制工具输出。

博客 4180

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4054

unity2D物理引擎之-Rigidbody 2D

虽然Rigidbody 2D大致上可以看成是Rigidbody的2D化,大部分功能也是一致的,但是还是有一些细节问题。 一些事项: 1.任何添加到同一个 GameObject身上或者其子物体身上的 2D Collider组件都隐式的 附属于 那个 Rigidbody 2D. 2.当一个Collider 2D组件附属到一个Rigidbody 2D身上时,它就跟随Rigidbody 2D移...

weixin_30745553的博客 864

ApolloScape 数据集:YOLOv10 + UI界面实现与应用

是由百度Apollo团队发布的一个大规模自动驾驶数据集,涵盖了车辆、行人、骑行者等多种交通元素,旨在为自动驾驶技术的发展提供丰富的数据支持。数据集包含多种复杂的场景,例如城市道路、交叉口、车辆聚集等,能够帮助研究人员和开发者在多种现实环境下测试和验证目标检测模型。YOLO(You Only Look Once)系列算法是目前最流行的目标检测算法之一,因其高效、准确以及实时性强的特点被广泛应用于计算机视觉领域。YOLOv10是YOLO系列中的最新版本,在性能和效率上进行了多方面的优化。速度快。

YOLO 927

Unity 2D游戏:*** Collider 2D(2D碰撞器)

Box Collider 2D 属性 说明 Edit Collider 编辑碰撞器 (设置边框) 选中后,可直接在Scene视图调整碰撞器边框。 Material 材质 关联2D物理材质,决定碰撞性质的物理材料,如摩擦和弹跳。 Is Trigger 是否开启触发器 选中后,触发属性开启 Us...

JPF29 1万+

SAP成本核算的核心逻辑

SAP成本核算采用"计划-归集-分析"闭环管理,以CO模块为核心,集成PP、MM等模块。核算前需配置标准成本控制范围、成本中心等主数据。标准成本通过BOM和工艺路线计算(CK11N),采购和生产过程记录实际成本差异。制造费用通过成本中心归集,作业成本按实际耗用量分配。完工产品按标准成本入库,月末通过KO88结算工单差异,物料分类账(CKMLCP)还原实际成本。整个流程实现FI与CO数据同步,确保账务一致。关键事务码包括CK11N(成本估算)、MIGO(物料移动)、CO11N(报工)等。

金牌架构师 536

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Unity碰撞检测的必要条件

Unity中有两个独立的物理引擎,一个用于3D物理系统,一个用于2D物理系统。两个引擎是使用不同的组件实现的。因此BoxCollider和Rigidbody一起使用,代码中用OnTriggerEnter才能检测到触发;BoxCollider2D和Rigidbody2D一起使用,代码中用OnTriggerEnter2D才能检测到触发。 Rididbody 刚体(Rigidbody),有了这个物体就有看物理行为(受力的作用),两个物体想要发生碰撞检测,其中一个必须带有刚体组件。 BoxCollider 盒状碰撞

KindSuper_liu的专栏 7039

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Unity中关于Rigidbody和Collider的问题

Rigidbody: 给Object添加了Rigidbody组件,它会受到各种物理力的影响,成为动态物体,在接触到其他Object的Collider(碰撞器)后产生相应的受力运动(当然自己也得有Collider)。通过脚本控制物体移动(常用的几种方法),也要求其添加Rigidbody组件。 勾选Is Kinematic后,它将不受物理力的影响。 Collider: 没有Rigidbody

UIUCGOGOGO的博客 4997

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Unity 使用 Spine 动画

在 Unity 中,常常使用 Spine 来制作一些动画,引擎本身并不能直接播放 Spine 动画,需要额外导入一个 RunTime 插件库才能支持。 运行库导入 关于运行库的导入,有两种方式: 1. 从开源库导入 下载 Spine 的 runtime 库:EsotericSoftware/spine-runtimes ,只需要将其中的 spine-csharp 和 spine-un...

linshuhe1的专栏 15万+
上一篇: 通过制作Flappy Bird了解Native 2D中的Sprite,Animation
下一篇: Unity创建项目及基本面板介绍
七大黍
博客等级 码龄20年 436粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值