UnityAPI的学习——Rigidbody类

本文详细介绍了Unity引擎中Rigidbody类的各种属性,如碰撞检测模式、阻力、质量、速度等,以及实例方法如添加爆炸力、增加点作用力等,帮助开发者理解和应用刚体动力学模拟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Rigidbody类的功能是用来模拟GameObject对象在现实世界中的物体特性,包括重力、阻力、质量、速度等

Rigidbody类实例属性

在Rigidbody类中,涉及的实例属性有collisionDetectionMode、drag、inertiaTensor、mass和velocity。

collisionDetectionMode属性:碰撞检测模式

基本语法

public CollisionDetectionMode collisionDetectionMode{
    get; set; }

功能说明
此属性用于设置刚体的碰撞检测模式。刚体的碰撞检测模式有三种,即枚举类型CollisionDetectionMode
功能说明
1、Discrete :静态离散检测模式,为系统的默认设置。在此模式下,只有在某一帧中两物体的碰撞器发生重叠时才能被检测到,这样就有可能导致某物体的前一帧在另一个刚体的上方,而下一帧移动到了另一个刚体的下方,这样就会发生穿越现象。
2、Continuous:静态连续检测模式,一般用在高速运动刚体的目标碰撞体上,防止被穿越,检测强度比Discreet强。
总之,无论哪种检测模式都有可能被穿越,为了防止穿越现象的发生,除了设置其碰撞检测模式外,还要适当增加两物体碰撞器的厚度,一般不要小于0.1,,同时尽量降低两物体碰撞时的相对速度。

drag属性:刚体阻力

基本语法

public float drag {
    get; set; }

功能说明
此属性用于给刚体添加一个阻力。drag值越大刚体速度减慢得越快,当drag>0时,刚体在增加到一定速度后会均速移动
注意:刚体在自由落体运动中的最大速度值只与Gravity和drag值有关,与质量Mass无关。

inertiaTensor属性:惯性张量

功能说明
此属性用于设置刚体的惯性张量。在距离重心同等的条件下,刚体会向张量值大的一遍倾斜。

msaa属性:刚体质量

基本语法

public float mass{
   	get;	set;}

功能说明
此属性用于设置或返回刚体的质量。一般刚体质量取值在0.1附近模拟最佳,最大不要超过10,否则容易出现模拟不稳定的情况
mass的主要作用是在物体发生碰撞时计算碰撞后物体的速度。当一个物体分别去撞击mass大的物体和mass小的物体时,根据动量守恒定律,较重的物体被撞后的速度要慢于较轻的物体

velocity属性:刚体速度

基本语法

public Vector3 velocity{
    get; set; }

功能说明
此属性用于设置或返回刚体的速度值
1、在脚本中无论是给刚体赋予一个Vector3类型的速度向量v,还是获取当前刚体的速度v,v的方向都是相对世界坐标系而言的。
2、velocity的单位是米每秒,而不是帧每秒,其中米是Unity中默认的长度单位。

Rigidbody类实例

在Rigidbody类中涉及的实例方法:AddExplosionForce方法、AddForceAtPosition方法、AddToque方法、ClosestPointOnBounds方法、GetPointVelocity方法、MovePosition方法、Sleep方法、SweepTest方法、SweepTestAll方法和WakeUp方法。

AddExplosionForce方法:模拟爆炸力

基本语法


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值