大家好,我是阿浪,新入CSDN的博主,我会在接下来的时间里,分享我对基于unity引擎开发的认知与经验,如果你是从业游戏开发行业,觉得我的文章对您有帮助,麻烦您为我的文章点一个赞,再去收藏以便学习。你的点赞将会成为我继续创作下去的动力,感谢支持!
一、为什么要同时介绍两个组件
对于刚入坑unity的朋友来说,可能不太清楚。collider组件和rigidbody组件无论在unity2d的开发还是在unity3d的开发多数情况是联合使用的。当然这样讲也不算很准确,具体还是要看需求。碰撞体组件与刚体组件的联合使用可以实现生动的物理交互现象。
二、刚体组件
为什么先介绍刚体组件。因为绝大多数情况刚体组件的属性都是不需要作出修改的,修改是基于Collider组件进行修改,所以接下来我只会介绍属性,不再做出rigidbody相关的实例,如果有需要,可以尝试修改刚体组件的属性来查看物体运动变化学习刚体组件属性。
1.RigidBody(3D)
我们随便在场景中创造一个物体,我这里选择Cube,在Cube的检查器面板上添加一个RigidBody组件。
1.Mass:物体的质量,影响物体的运动和碰撞反应。质量越大,物体的惯性越大。
2.Drag:物体在运动时受到的空气阻力。值越大,物体减速越快。
3.Angular Drag:物体旋转时受到的阻力。值越大,物体旋转减速越快。
4.Automatic Center of Mass:这个是自动质心功能,勾选后系统会自动帮你计算好物体的质心,取消勾选后可以手动修改质心位置。
5.Automatic Tensor:自动张力,取消勾选后可以自主修改物体张力。
6.Use Gravity:是否受重力影响。勾选后,物体会受到重力作用。
7.Is Kinematic:如果勾选,物体将不受物理引擎的影响,可以通过代码直接控制其位置和旋转。
8.Interpolate:用于平滑物体的运动。可以选择None、Interpolate或Extrapolate,以减少运动时的抖动。
9.Collision Detection:碰撞检测模式,可以选择Discrete(离散)、Continuous(连续)或Continuous Dynamic(连续动态),以提高碰撞检测的准确性,尤其是在快速移动的物体上。
10.Constraints:用于锁定物体的运动和旋转轴。可以选择锁定位置(X、Y、Z)或旋转(X、Y、Z),以限制物体的自由度。
当你给物体添加上刚体组件后运行,该物体在默认状态下就会受重力影响下坠。
2.RigidBody 2D
该组件对2d精灵体生效,如果你想要从事2d开发,可能对该物体的交道
要深,接下来我们创建一个2d游戏对象,为他加上2d刚体组件。
接下来看属性:
1.Body Type:
*Dynamic:物体受物理引擎影响,具有质量和重力。
*Kinematic:物体不受物理引擎影响,可以通过代码控制其位置和旋转。
*Static:物体是静态的,不会移动,通常用于地面或墙壁。
2.Material:物体的材质
3.Simulated:
*当勾选此选项时,刚体将参与物理引擎的计算,包括重力、碰撞、摩擦等物理效果。
*未勾选时:如果取消勾选,物体将不会受到物理引擎的影响,所有的物理计算(如重力、碰撞等)将被禁用。此时,物体将不会移动,除非通过代码直接设置其位置或旋转。
4.Use Auto Mass:使用自动重量
5.Gravity Scale:控制物体受重力影响的程度。默认值为1,设置为0则不受重力影响。
6.Linear Drag:物体在运动时受到的空气阻力。值越大,物体减速越快。
7.角阻力及其他属性同上。
接下来我会在下一篇文章详细介绍碰撞体组件,感谢您的关注!