Ridigbody2D:用于2D精灵的刚体物理组件。
精灵:2D图形对象,本质是标准图形纹理。
刚体:使对象的行为方式受物理控制,接受力和扭矩行为方式基于施加的作用力。
Rigidbody2D组件的检查器inspector在设置不同身体类型时显示如下:
①身体类型:
Dynamic(动态):具有可用的全套属性,如质量和阻力,并受重力和作用力影响;是2D刚体的默认类型;最具互动性,性能成本最高。
Kinematic(运动学):仅在用户控制(脚本)下进行移动,不受重力和作用力影响;只与Dynamic刚体碰撞;速度快;系统资源需求低;
静态的(Static):顾名思义,不是为了移动而设计的,简单理解为无限质量,不可撼动;只能与Dynamic刚体碰撞。
实例对比如下,白色图形都添加了碰撞体和刚体组件。
其中:三角形为静态碰撞体,表现为“悬浮”空中,即使被圆形碰撞,自身也没有移动。
圆形为Dynamic碰撞体,表现为具有质量而受重力落到地面,并与所有碰撞体发生碰撞。
正方形为Kinematic碰撞体,为我自己通过脚本移动,表现为不受重力影响,不与属于静态碰撞体的三角形碰撞,与Dynamic类型的圆形发生碰撞。
②材质:刚体的物理材质两个参数是摩擦力和弹力
物理材质优先级:Collider2D>RigidBody2D>全局物理材质
实例如下:在项目中创建一个物理材质及其检查器inspector如下:
将材质挂在圆形的刚体物理材质上,为便于比较设置弹力为4
此时再次运行前面的实例,效果如下:
弹力太大圆形直接弹飞可见使用的材质有了效果。
③ 模拟的
默认为勾选状态,取消勾选则不会发生物理仿真效果。
模拟包括:运动、Collider2D的碰撞、Joint2D的约束效果、是否驻留在内存。
更改此属性在内存和处理上,都比直接启用/禁用Collider2D组件和Joint2D组件更有效率。
实例如下:圆下方的三角形取消了勾选状态,不再模拟所以圆直接穿了过去。
④ 自动质量:2D刚体从对撞中检查物体质量。
质量:即2D刚体的质量;自动质量和质量互斥。
线性阻尼和角阻力:即线性阻力和角度阻力,分别影响位置和旋转运动的阻力系数。
重力大小:即物体受重力的程度。
⑤ 碰撞检测
离散(Discrete):可以理解为是断续地更新,比如物体A在当前帧在B的左边,下一帧运动到B的右边,在两帧之间没有发生物理更新,便不 会检测出碰撞。尤其是物体高速运动,不适用于这种检测模式
持续(Continuous):连续检测,移动即检测,可以防止上文离散模式的情况,防止对象穿过所有静态的碰撞体。当然,需要更多的机器性能。
⑥ 休眠模式
在休眠模式下,Unity会把处于静止状态的物理模拟去除,这样处理可以节省计算资源。
从不休眠:顾名思义,从不进入休眠模式,此模式下消耗的系统资源多。
开始唤醒:游戏开始时处于该模式下的物体是非休眠状态。
开始休眠:游戏开始时处于该模式下的物体处于休眠状态。
举例如下:两个Dynamic碰撞体类型的三角形,左边的设为开始休眠状态,右边设为开始唤醒状态。
运行实例后表现为:“开始休眠”模式的三角形在开始时被Unity去除了物理模拟,最基本的表现是没有质量而没有掉下去。
“开始唤醒”状态的三角形开始的时候便落了下来。
⑦ 插值:在更新之间使用的物理插值。
如果图形更新比物理更新频繁的多,那么视觉上看对象运动起来可能是“断断续续”而不平滑流畅,此时打开插值选项就会很有用。
插值模式:根据上一帧与当前帧的位置对运动进行平滑处理。
外推模式:对下一帧的估计位置来对运动进行平滑处理。
⑧ Constraints(限制)
顾名思义,冻结X则对象无法延X方向移动,Y同理;
冻结旋转的一个用途是用于2D精灵使其移动时不会发生旋转
实例如下:两个类型为Dynamic碰撞体的三角形,左不作限制,右冻结旋转。
⑨Info:用于显示当前设置的信息状态。
Position:位置
Roration:旋转
Velocity:速度
Angular Velocity:角速度
Inertia:惯性
Local Center of Mass:局部质心
World Center of Mass:世界质心
Sleep State:睡眠状态文章来源:https://www.toymoban.com/news/detail-476065.html
第一次写博客,如有错误和建议欢迎补充,指正和交流。文章来源地址https://www.toymoban.com/news/detail-476065.html
到了这里,关于Unity初识Rigidbody2D的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!