Version: 2017.3

Rigidbody2D

class in UnityEngine

/

继承自:Component

切换到手册

描述

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

The Rigidbody2D class essentially provides the same functionality in 2D that the Rigidbody class provides in 3D. Adding a Rigidbody2D component to a sprite puts in under the control of the physics engine. By itself, this means that the sprite will be affected by gravity and can be controlled from scripts using forces. By adding the appropriate collider component, the sprite will also respond to collisions with other sprites. This behaviour comes entirely from Unity's physics system; very little code is required to get impressive and authentic physical behaviour and allows for "emergent" gameplay that was not explicitly coded into the game.

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

变量

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

公共函数

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

继承的成员

变量

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

公共函数

BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag此游戏对象是否使用 tag 进行了标记?
GetComponent如果游戏对象附加了类型为 type 的组件,则将其返回,否则返回 null。
GetComponentInChildren使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildren返回 GameObject 或其任何子项中类型为 type 的所有组件。
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
GetInstanceID返回对象的实例 ID。
ToString返回 GameObject 的名称。

静态函数

Destroy删除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad加载新场景时,不自动销毁对象 /target/。
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsOfType返回所有类型为 type 的已加载的激活对象的列表。
Instantiate克隆 original 对象并返回克隆对象。

运算符

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