Unity3D刚体

144 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第30天

(由于问题不好描述,所以标题就比较长了)

之前在做游戏时,发生角色与其他模型始终不能正常碰撞,总是会穿插,即角色穿过其他模型。其中角色有刚体和碰撞器组件,其他模型“有”碰撞器。

事后发现错误在于,其他模型的碰撞器组件被加到“组”上,而非组内每个物体中。

例如,一个客厅场景,有桌子、电视、墙壁,将3者打组成为一个组,命名“Environment”,再给Environment加个碰撞体组件。这样了,就会出现问题。正确的做法是,给Environment组内的每个物体(桌子、电视、墙壁)都加上碰撞体组件。

PS:别忘了运动的角色模型需要加刚体和碰撞体。

两个对象都有Collider组件且至少一个有Rigidbody组件;

其中至少一个物体(必须运动的)必须带有碰撞器(collider)+刚体(Rigidbody),另一个物体(可以静止也可以运动)也必须至少带有collider;

Unity 3D 中的 Rigidbody 可以为游戏对象赋予物理特性,使游戏对象在物理系统的控制下接受推力与扭力,从而实现现实世界中的物理学现象。

我们通常把在外力作用下,物体的形状和大小(尺寸)保持不变,而且内部各部分相对位置保持恒定(没有形变)的理想物理模型称为刚体。

刚体(Rigidbody)是物理引擎中最基本的组件。通过该组件可以给物体添加一些常见的物理属性,如质量、摩擦力、碰撞参数等。

Unity 3D 提供了多个实现接口,开发者可以通过更改这些参数来控制物体的各种物理状态。

刚体在各种物理状态影响下运动,刚体的属性包含:

  • Mass(质量)
  • Drag(阻力)
  • Angular Drag(角阻力)
  • Use Gravity(是否使用重力)
  • Is Kinematic(是否受物理影响)
  • Collision Detection(碰撞检测)

刚体添加方法

在 Unity 3D 中创建并选择一个游戏对象,执行菜单栏中的 Component → Physics → Rigidbody 命令为游戏对象添加刚体组件。