问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Unity组件详解:Collider和Rigidbody(碰撞和刚体)(上)

创作时间:
2025-04-06 09:50:37
作者:
@小白创作中心

Unity组件详解:Collider和Rigidbody(碰撞和刚体)(上)

引用
CSDN
1.
https://blog.csdn.net/2302_81179558/article/details/141055950

在Unity引擎开发中,Collider(碰撞体)和Rigidbody(刚体)组件是实现物理交互的基础。本文将详细介绍这两个组件的功能和属性,帮助开发者更好地理解它们在2D和3D场景中的应用。

一、为什么要同时介绍两个组件

对于刚接触Unity的开发者来说,可能不太清楚为什么Collider组件和Rigidbody组件经常需要联合使用。实际上,在Unity2D和Unity3D开发中,这两种组件多数情况下是配合使用的。虽然这种说法并不绝对,具体还是要根据项目需求来定。但碰撞体组件与刚体组件的联合使用确实可以实现生动的物理交互效果。

二、刚体组件

为什么先介绍刚体组件?因为大多数情况下,刚体组件的属性都不需要进行修改,修改主要集中在Collider组件上。接下来,我们将详细介绍Rigidbody组件的属性,但不会给出具体的实例。如果需要,可以尝试修改刚体组件的属性,观察物体运动的变化,从而更好地理解这些属性的作用。

1. Rigidbody(3D)

在场景中创建一个物体,例如Cube,在Cube的检查器面板上添加一个Rigidbody组件。

  • Mass:物体的质量,影响物体的运动和碰撞反应。质量越大,物体的惯性越大。
  • Drag:物体在运动时受到的空气阻力。值越大,物体减速越快。
  • Angular Drag:物体旋转时受到的阻力。值越大,物体旋转减速越快。
  • Automatic Center of Mass:自动质心功能。勾选后系统会自动计算物体的质心,取消勾选后可以手动修改质心位置。
  • Automatic Tensor:自动张力。取消勾选后可以自主修改物体张力。
  • Use Gravity:是否受重力影响。勾选后,物体会受到重力作用。
  • Is Kinematic:如果勾选,物体将不受物理引擎的影响,可以通过代码直接控制其位置和旋转。
  • Interpolate:用于平滑物体的运动。可以选择None、Interpolate或Extrapolate,以减少运动时的抖动。
  • Collision Detection:碰撞检测模式。可以选择Discrete(离散)、Continuous(连续)或Continuous Dynamic(连续动态),以提高碰撞检测的准确性,尤其是在快速移动的物体上。
  • Constraints:用于锁定物体的运动和旋转轴。可以选择锁定位置(X、Y、Z)或旋转(X、Y、Z),以限制物体的自由度。

给物体添加Rigidbody组件后运行,该物体在默认状态下就会受重力影响下坠。

2. Rigidbody 2D

该组件对2D精灵体生效。如果你想要从事2D开发,可能需要更深入地了解这个组件。接下来,我们创建一个2D游戏对象,并为其添加2D刚体组件。

接下来看属性:

  • Body Type
  • Dynamic:物体受物理引擎影响,具有质量和重力。
  • Kinematic:物体不受物理引擎影响,可以通过代码控制其位置和旋转。
  • Static:物体是静态的,不会移动,通常用于地面或墙壁。
  • Material:物体的材质
  • Simulated
  • 当勾选此选项时,刚体将参与物理引擎的计算,包括重力、碰撞、摩擦等物理效果。
  • 未勾选时:如果取消勾选,物体将不会受到物理引擎的影响,所有的物理计算(如重力、碰撞等)将被禁用。此时,物体将不会移动,除非通过代码直接设置其位置或旋转。
  • Use Auto Mass:使用自动重量
  • Gravity Scale:控制物体受重力影响的程度。默认值为1,设置为0则不受重力影响。
  • Linear Drag:物体在运动时受到的空气阻力。值越大,物体减速越快。
  • 角阻力及其他属性同上。

接下来,我们将在下一篇文章中详细介绍碰撞体组件。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号