Version: 2021.2

Rigidbody2D

class in UnityEngine

/

继承自:Component

切换到手册

描述

用于 2D 精灵的刚体物理组件。

Rigidbody2D 类提供与 Rigidbody 类基本相同的功能,两者的区别在于:Rigidbody2D 用于 2D 环境,Rigidbody 用于 3D 环境。向精灵添加 Rigidbody2D 组件后,其运动将受到物理引擎的控制。这意味着精灵将受到重力的影响,并且可以在脚本中使用力对其进行控制。通过添加适当的碰撞体组件,精灵还能响应与其他精灵的碰撞。这种行为完全来自 Unity 的物理系统;您只需提供极少量的代码,就能实现令人印象深刻和逼真的物理行为,并提供没有显式编码到游戏中的“自发的”游戏玩法。

另请参阅:Rigidbody 类、SpriteRenderer 类、Collider2D 类、Joint2D 类。

变量

angularDrag角阻力系数。
angularVelocity角速度(以度/秒为单位)。
attachedColliderCount返回附加到该 Rigidbody2D 的 Collider2D 的数量。
bodyType Rigidbody2D 的物理行为类型。
centerOfMass刚体在本地空间中的质心。
collisionDetectionMode物理引擎用于检查两个对象是否发生碰撞的方法。
constraints控制该 Rigidbody2D 的模拟自由度。
drag阻力系数。
freezeRotation控制物理是否会更改对象的旋转。
gravityScale该对象受重力影响的程度。
inertiaThe Rigidbody's resistance to changes in angular velocity (rotation).
interpolation在更新之间使用的物理插值。
isKinematic该刚体是否应该脱离物理控制?
mass刚体的质量。
position刚体的位置。
rotation刚体的旋转。
sharedMaterial应用于附加到该 Rigidbody2D 的所有 Collider2D 的 PhysicsMaterial2D。
simulated指示物理系统是否应模拟刚体。
sleepMode刚体最初处于的睡眠状态。
useAutoMass是否应根据附加碰撞体的 [[Collider2D.density]] 自动计算总刚体 mass?
useFullKinematicContacts是否允许运动/运动和运动/静态碰撞?
velocity刚体的线性速度,采用单位/秒形式。
worldCenterOfMass获取刚体在全局空间中的质心。

公共函数

AddForce对刚体施加力。
AddForceAtPosition在空间中的给定位置施加力。
AddRelativeForce向 rigidbody2D 添加力(相对于其坐标系)。
AddTorque在刚体的质心处施加扭矩。
Cast附加到 Rigidbody2D 的所有 Collider2D 形状都将投射到场景中 - 从每个碰撞体的位置开始,忽略附加到同一个 Rigidbody2D 的碰撞体。
ClosestPoint返回附加到此刚体的所有已启用碰撞体周边上最接近指定 position 的点。
Distance计算 collider 到附加到该 Rigidbody2D 的所有 Collider2D 的最小距离。
GetAttachedColliders返回附加到该 Rigidbody2D 的所有 Collider2D。
GetContacts获取附加到该刚体的所有碰撞体的所有接触点。
GetPoint根据位于刚体全局空间中的点 /point/,获取本地空间点。
GetPointVelocity点 /Point/(全局空间)处刚体的速度。
GetRelativePoint根据位于刚体本地空间中的点 /relativePoint/,获取全局空间点。
GetRelativePointVelocity点 /Point/(本地空间)处刚体的速度。
GetRelativeVector根据位于刚体本地空间中的向量 /relativeVector/,获取全局空间向量。
GetShapesGets all the PhysicsShape2D used by all Collider2D attached to the Rigidbody2D.
GetVector根据位于刚体全局空间中的向量 /vector/,获取本地空间向量。
IsAwake刚体是否处于“唤醒”状态?
IsSleeping刚体是否处于“睡眠”状态?
IsTouching检查 collider 是否正在接触附加到该刚体的任何碰撞体。
IsTouchingLayers检查附加到该刚体的任何碰撞体是否正在接触指定 layerMask 上的任何碰撞体。
MovePosition将刚体移动到 /position/。
MoveRotation将刚体旋转到 /angle/(以度为单位)。
OverlapCollider获取与附加到该 Rigidbody2D 的所有碰撞体重叠的所有碰撞体的列表。
OverlapPoint检查是否有任何 Rigidbody2D 碰撞体与空间中的某个点重叠。
SetRotation将 Rigidbody2D 的旋转设置为 /angle/(以度为单位)。
Sleep使刚体进入“睡眠”状态。
WakeUp禁用刚体的“睡眠”状态。

继承的成员

变量

gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTagChecks the GameObject's tag against the defined tag.
GetComponentReturns the component of type if the GameObject has one attached.
GetComponentInChildrenReturns the Component of type in the GameObject or any of its children using depth first search.
GetComponentInParentReturns the Component of type in the GameObject or any of its parents.
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildrenReturns all components of Type type in the GameObject or any of its children. Works recursively.
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfTypeGets a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。