【唐老狮】Unity——物理系统(碰撞检测)

Unity入门】24.碰撞检测 学习Unity碰撞体相关~ 阅读详情

【学习目标】

碰撞检测

  1. 能够让两个游戏物体之间产生碰撞

  2. 能够让两个物体碰撞时表现出不同效果

  3. 能够通过代码检测到碰撞产生的不同阶段

  4. 能够使用触发器让两个物体相互穿透

  5. 能够通过代码检测到触发产生的不同阶段



【碰撞检测】

【碰撞的必要条件】

两个游戏物体(GameObject)之间

至少有一个物体有刚体组件(Rigidbody)

并且两个物体都有碰撞盒组件(Collider)



【实例】

 

 

上方物体挂载了刚体和碰撞盒

下方物体挂载了碰撞盒

运行后由于上方物体有刚体组件

并且Use Gravity默认勾选

所以它会受重力影响自由下落

图片

 



【刚体组件】

让游戏物体(GameObject)

受到力的作用

参数说明

红色字为重要参数

其余了解即可

Mass

对象的质量(默认为千克)

Drag

根据力移动对象时影响对象的空气阻力大小。0 表示没有空气阻力,无穷大使对象立即停止移动

Angular Drag

根据扭矩旋转对象时影响对象的空气阻力大小。0 表示没有空气阻力。请注意,如果直接将对象的 Angular Drag 属性设置为无穷大,无法使对象停止旋转。

Use Gravity

如果启用此属性,则对象将受重力影响。

Is Kinematic

如果启用此选项,则对象将不会被物理引擎驱动,只能通过 (Transform) 对其进行操作。对于移动平台,或者如果要动画化附加了 HingeJoint 的刚体,此属性将非常有用。

Interpolate

仅当在刚体运动中看到急动时才尝试使用提供的选项之一。

-None

不应用插值。

-Interpolate

根据前一帧的变换来平滑变换。

-Extrapolate

根据下一帧的估计变换来平滑变换。

Collision Detection

用于防止快速移动的对象穿过其他对象而不检测碰撞。

-Discrete

对场景中的所有其他碰撞体使用离散碰撞检测。其他碰撞体在测试碰撞时会使用离散碰撞检测。用于正常碰撞(这是默认值)。

-Continuous

对动态碰撞体(具有刚体)使用离散碰撞检测,并对静态碰撞体(没有刚体)使用基于扫掠的连续碰撞检测。设置为_连续动态 (Continuous Dynamic) 的刚体将在测试与该刚体的碰撞时使用连续碰撞检测。其他刚体将使用离散碰撞检测。用于连续动态 (Continuous Dynamic) 检测需要碰撞的对象。(此属性对物理性能有很大影响,如果没有快速对象的碰撞问题,请将其保留为 Discrete 设置)

-Continuous Dynamic

对设置为连续 (Continuous)和连续动态 (Continuous Dynamic)碰撞的游戏对象使用基于扫掠的连续碰撞检测。还将对静态碰撞体(没有刚体)使用连续碰撞检测。对于所有其他碰撞体,使用离散碰撞检测。用于快速移动的对象。

-Continuous Speculative

对刚体和碰撞体使用推测性连续碰撞检测。这也是可以设置运动物体的唯一 CCD 模式。该方法通常比基于扫掠的连续碰撞检测的成本更低。

Constraints

对刚体运动的限制。

-Freeze Position

有选择地停止刚体沿世界 X、Y 和 Z 轴的移动。

-Freeze Rotation

UnityUnity碰撞检测(3D和2D) 碰撞检测可以说时学习Unity中最重要的一个部分,以为在游戏中,想要游戏进行交互,碰撞时非常重要的,而我在网上查了很多教程,但是都没有成功,后来经过我的仔细检查代码与修改,终于成功了 阅读详情

相关推荐

Unity物理碰撞检测详解

碰撞检测Unity 物理系统的核心功能,用于检测和处理游戏对象之间的交互。下面我将从基础到高级全面解析 Unity碰撞检测机制。

2302_76776557的博客 2026

2022-04-20 Unity入门7——物理系统碰撞检测

文章目录一、刚体 Rigid Body二、碰撞器 Collider三、物理材质四、碰撞检测函数五、刚体加力 一、刚体 Rigid Body ​ 刚体利用体积(碰撞器 Collider)进行碰撞计算,模拟真实的碰撞效果,产生力的作用 ​ 碰撞产生的必要条件: 两个物体都有碰撞器 Collider 至少一个物体有刚体 Mass:质量 默认为千克,质量越大惯性越大 Drag:空气阻力 根据力移动对象时影响空气阻力大小 0 表示没有空气阻力 Augular Drag:旋转阻力 根据扭矩旋转对象时影

zheliku的博客 1万+

唐老狮Unity——物理系统(射线检测)

【学习目标】 射线检测 能够通过射线检测进行碰撞判断 能够通过玩家点击屏幕检测选中的物体 【射线检测】 作用 可以利用3D世界中的射线,和3D世界中的物体进行碰撞(相交)判断,利用它可以实现射击 ​ 必要条件碰撞体 射线 【3D世界中射线】 由线段的一端无限延长所形成的直的线,由起点和方向两个关键属性构成 代码中创建射线对象 代码中创建射线对象 注意:这里画的是线段,用来看射线的方向的,真的射线是从起点向方向无限延伸的 【屏幕发出的射线】 根据玩家在屏幕上点击的位置,

MrTang_Unity的博客 3708

Unity入门7——物理系统碰撞检测

设置为连续动态的刚体,将在测试与该刚体的碰撞时使用连续碰撞检测(物理性能消耗较大,物体运动缓慢时请设置为 Discrete)如果是一个异形物体,刚体在父对象上,如果你想通过子对象上挂脚本检测碰撞是不行的,必须挂载到这个刚体父对象上才行。​ 为物体添加 Constant Force,若物体之前没有 Rigid Body,则会为其自动添加。​ 刚体利用体积(碰撞器 Collider)进行碰撞计算,模拟真实的碰撞效果,产生力的作用。如果该对象添加了刚体 Rigid Body,则该选项必须勾选,否则会报错。

weixin_53163894的博客 1万+

Unity--物理系统(碰撞检测)

发生碰撞、有物理效果、触发可穿透、不同阶段。

dcprime的博客 4505

唐老狮Unity——物理系统(范围检测)

【学习目标】 能够使用范围检测函数在游戏中进行范围检测 【范围检测】 作用 在3D世界中检测在某一个范围内存在的物体 在游戏中,经常会存在这样的技能,比如陨石术,定点爆破等等,他们都是释放的一瞬间,判断某一个范围内是否有怪物或者玩家,然后让其受到伤害,检测一次后就结束。 如果我们用之前的碰撞检测,和射线检测都不太适合做这样的功能。因为碰撞检测主要是用来长时间存在的物体间进行判断的,比如检测子弹和其它物体是否有碰撞;而射线检测是线性的检测,并不是范围的。 所以这种瞬间的,范围的判断就必须要学

MrTang_Unity的博客 2771

Untiy中物理系统碰撞检测(笔记)

本篇笔记用于记录唐老狮视频课程的学习心得。 碰撞产生的必要条件,两个物体都有碰撞器,至少一个物体有刚体。如果启用,就不会受到力的作用,只通过Transform移动触发器,启用后将忽略碰撞,只用于触发事件 刚体对象的子对象碰撞器信息参与碰撞检测 点击+号/右键Assets后Create->Physical Material 碰撞响应相关的函数也是在一个特殊的生命周期函数里面触发的,他是在FixUpdate之后,Update之前执行的。 函数

ILLLLLLY3028的博客 709

Unity碰撞检测

unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。

希望有志同道合的的朋友可以互相学习! 3735

Unity中实现平台跳跃功能(不使用物理系统

还是同一条原则,不要使用过多的if判断,而是直接设置他的值,并且让他与条件自身相关,可以让代码耦合度大大降低,而且准确。平台逻辑,当玩家x值在平台的左右坐标之间,并且y轴大于等于平台的y轴(高度)时,就认为玩家是可以落到这个平台上面的。滞空转下落,则bool值 isFall==true来作为切换条件,滞空时间未知,所以不需要等待播放完毕,取消勾选。为-1时,即向左,我们让人物的旋转参数=(0,-90,0)。有的平台有影子,有的平台可以主动跳下,脚本定义一个公开的bool,在外界根据不同的平台去勾上就好了。

ultraman1234566的博客 1436

20250621-《唐老狮Unity入门》笔记(二十二):碰撞检测

20250621-《唐老狮Unity入门》笔记(二十二):碰撞检测

qq_44965626的博客 591

unity物理模块 之 范围检测Physics.Overlap

本文仅作学习笔记与交流,不作任何商业用途本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正。

咩咩的博客 1314

Unity--物理系统(射线检测)

射线检测:碰撞判断、检测玩家点击的物体判断射线与物体是否碰撞:碰撞体、射线。

dcprime的博客 757

Unity学习--2D相关--【2D物理】刚体、碰撞器与物理材质

本文总结了Unity 2D物理系统中刚体的关键知识点。2D物理系统与3D的主要区别在于仅计算XY轴碰撞,但允许Z轴旋转。刚体类型分为Dynamic(受物理影响)、Kinematic(手动控制)和Static(完全静止),各自具有不同的碰撞特性。文章详细介绍了刚体参数设置,包括质量、阻力、算法选择等,并提供了使用建议:Dynamic适合常见物理效果,Kinematic使用较少,Static适用于静止物体。最后提到可通过API查看具体的力作用方式,为开发者提供了2D物理系统的实用操作指南。(149字)

misco43的博客 1503

Unity知识点入门、基础、核心、进阶

快速回顾Unity相关组件

weixin_46012816的博客 2912

XR 开发优先学习路线

现在的 XR 开发(如使用 XR Interaction Toolkit)基本都是把 UGUI 放在“World Space”模式下。:XR 游戏(尤其是 Quest 等一体机)对性能敏感,且 Lua 在 XR 领域的应用不如手游广泛,初期没必要学。:XR 对帧率要求极高(VR 通常要稳定 72/90/120 FPS),必须学习 URP 及其下的。:现代 XR 开发不再使用旧的输入方式,全部基于 Unity 新的。:XR 里的交互(如抓取、射线检测)全靠脚本控制。:XR 是纯 3D 的世界。

明阳 84

Unity碰撞检测(总结篇)

Unity碰撞检测(总结篇)Unity碰撞检测系列文章结论总结

我与岁月的森林的博客 3285

Unity中实现碰撞检测的方式

碰撞检

ixue 3446

Unity 3D之碰撞检测

碰撞检测两大必备条件:1.其中一方具备刚体,碰撞双方碰撞器。触发检测两大必备条件:1.其中一方具备刚体,碰撞双方触发器。

m0_74427422的博客 4976
上一篇: 【唐老狮】C#——结构体和类的区别
下一篇: 【唐老狮】七大排序——冒泡排序
一唐老狮一
博客等级 码龄5年 505粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值