【Unity】入门学习笔记180522——API(12)——Rigidbody类——实例属性

本文详细介绍了Unity中Rigidbody类的各种属性及其用途,包括碰撞检测模式、阻力、惯性张量、质量和速度等,并提供了针对不同应用场景的设置建议。

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

Rigidbody类

模拟GameObject对象在现实世界中的物理特性

对Rigidbody对象属性的赋值代码通常放在脚本的OnFixedUpdate()方法中


A、Rigidbody类实例属性

1、collisionDetectionMode

public CollisionDetectionMode collisionDetectionMode{ get; set; }

此属性用于设置刚体的碰撞检测模式,共有3种枚举类型值:

①Discrete:静态离散检测模式,为系统默认设置。此模式下,只有在某一帧中两物体的碰撞器发生重叠时才能被检测到,这样就有可能导致某物体的前一帧在另一刚体的上方,而下一帧移动到了另一个刚体的下方,发生穿越现象。

②Continuous:静态连续检测模式,一般用在高速运动物体的目标碰撞体上,防止被穿越,检测强度比Discreet强。

③ContinuousDynamic:最强的连续动态检测模式,一般用在两个高速运动的物体上,防止互相穿越。计算消耗最大,一般情况下慎用。

无论采取哪种模式,为了防止穿越现象的发生,除了设置其碰撞检测模式外,还要适当增加两物体碰撞器的厚度,一般不要小于0.1,同时尽量降低两物体碰撞时的相对速度。


2、drag

public float drag{get; set; };

用于给刚体添加一个阻力,drag值越大刚体速度减慢的越快


3、inertiaTensor

rigidbody inertiaTensor=new Vector3(5.0f, 10.0f, 1.0f);

用于设置刚体的惯性张量。在距离重心同等的条件下,刚体会向张量值大的一边倾斜


4、mass

public float mass{ get; set; }

设置或返回刚体的质量。一般刚体质量取值在0.1附近模拟最佳,最大不要超过10,否则容易出现模拟不稳定的情况。

对于自由落体运动,物体的速度只与重力加速度Gravity和空气阻力drag有关,与质量mass无关

mass的主要作用是在物体发生碰撞时计算碰撞后物体的速度。当一个物体分别去撞击mass大的物体和mass小的物体时,根据动量守恒定律,较重的物体被撞后的速度要慢于较轻的物体。


5、velocity

public Vector3 velocity{ get; set; }

用于设置或返回刚体的速度值,

在脚本中无论是给刚体赋予一个Vector3类型的速度向量v,还是获取当前刚体的速度v,v的方向都是相对世界坐标系而言的。

velocity的单位是米每秒,而不是帧每秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值