Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Rigidbody

刚体组件。

让物体在物理系统中成为一个有质量的刚体。只有添加了这个组件之后,物体才有可能在物理系统的物理模拟阶段发生位移和旋转。

Hierarchy

Index

Properties

Readonly entity

entity: Entity

Readonly id

id: number = ...

Readonly isDestroyed

isDestroyed: boolean = false

Readonly isDestroying

isDestroying: boolean = false

Readonly priority

priority: number = ...

Static Priority

Priority: { Align: number; Layout: number; Low: number; Physics: number; Render: number; Tool: number } = ...

Type declaration

  • Align: number
  • Layout: number
  • Low: number
  • Physics: number
  • Render: number
  • Tool: number

Static Optional Serialize

Serialize: (...args: any[]) => any

Type declaration

    • (...args: any[]): any
    • Parameters

      • Rest ...args: any[]

      Returns any

Accessors

active

  • get active(): boolean
  • set active(value: boolean): void
  • Returns boolean

  • Parameters

    • value: boolean

    Returns void

activeInHierarchy

  • get activeInHierarchy(): boolean
  • 在场景树中是否active

    readonly
    memberof

    Component

    Returns boolean

angularDamping

  • get angularDamping(): number
  • set angularDamping(v: number): void
  • 角速度阻尼。
    影响物体的角速度

    limit

    angularDamping >= 0

    default

    0.05

    Returns number

  • 角速度阻尼。
    影响物体的角速度

    Parameters

    • v: number

    Returns void

angularVelocity

  • get angularVelocity(): Vector3
  • set angularVelocity(v: Vector3): void
  • 刚体的角速度。

    Returns Vector3

  • 刚体的角速度。

    Parameters

    Returns void

centerOfMass

  • 刚体的质心相对于LocalTransform的偏移量。
    如果不手动设置这一项,会自动根据刚体附着的碰撞体来计算质心。

    see

    resetCenterOfMass

    Returns Vector3

  • 刚体的质心相对于LocalTransform的偏移量。
    如果不手动设置这一项,会自动根据刚体附着的碰撞体来计算质心。

    Parameters

    Returns void

collisionDetectionMode

detectCollisions

  • get detectCollisions(): boolean
  • set detectCollisions(v: boolean): void
  • unimplemented
    default

    true

    Returns boolean

  • Parameters

    • v: boolean

    Returns void

freezeRotation

  • get freezeRotation(): boolean
  • set freezeRotation(v: boolean): void
  • 是否允许物理模拟过程中对刚体进行旋转。

    default

    true

    Returns boolean

  • 是否允许物理模拟过程中对刚体进行旋转。

    Parameters

    • v: boolean

    Returns void

inertiaTensor

  • get inertiaTensor(): number
  • set inertiaTensor(v: number): void
  • 刚体的转动惯量。
    如果不手动设置的话,会自动根据刚体上附着的碰撞体计算得出。

    see

    resetInertiaTensor

    Returns number

  • 刚体的转动惯量。
    如果不手动设置的话,会自动根据刚体上附着的碰撞体计算得出。

    Parameters

    • v: number

    Returns void

isKinematic

  • get isKinematic(): boolean
  • set isKinematic(v: boolean): void
  • 是否为运动学(Kinematic) 刚体。
    设置为运动学刚体后,除非手动调用movePosition,否则物体不会在物理模拟阶段发生位移或旋转。可以理解为,刚体的行为完全在用户的控制之下。

    default

    false

    Returns boolean

  • 是否为运动学(Kinematic) 刚体。
    设置为运动学刚体后,除非手动调用movePosition,否则物体不会在物理模拟阶段发生位移或旋转。可以理解为,刚体的行为完全在用户的控制之下。

    Parameters

    • v: boolean

    Returns void

linearDamping

  • get linearDamping(): number
  • set linearDamping(v: number): void
  • 线性阻尼。
    影响物体的线性速度

    limit

    linearDamping >= 0

    default

    0

    Returns number

  • 线性阻尼。
    影响物体的线性速度

    Parameters

    • v: number

    Returns void

mass

  • get mass(): number
  • set mass(v: number): void
  • 物体的质量。

    limit

    mass > 0

    default

    1

    see

    setDensity

    Returns number

  • 物体的质量。

    Parameters

    • v: number

    Returns void

maxAngularVelocity

  • get maxAngularVelocity(): number
  • set maxAngularVelocity(v: number): void
  • 最大角速度(弧度)。

    default

    7

    Returns number

  • 最大角速度(弧度)。

    Parameters

    • v: number

    Returns void

maxDepenetrationVelocity

  • get maxDepenetrationVelocity(): number
  • set maxDepenetrationVelocity(v: number): void
  • 最大分离速度。
    物理模拟解决碰撞(相交)的过程中,最大能允许的分离速度。

    default

    Infinity

    Returns number

  • 最大分离速度。
    物理模拟解决碰撞(相交)的过程中,最大能允许的分离速度。

    Parameters

    • v: number

    Returns void

position

  • 直接获取或修改刚体在物理系统中的位置。
    物理系统中的位置是独立于节点系统中的Transform的,详见{@link //TODO}。

    *如果你不清楚修改这一项的后果,请不要手动修改它。修改Transform3D.position来代替。

    Returns Vector3

  • 直接获取或修改刚体在物理系统中的位置。
    物理系统中的位置是独立于节点系统中的Transform的,详见{@link //TODO}。

    *如果你不清楚修改这一项的后果,请不要手动修改它。修改Transform3D.position来代替。

    Parameters

    Returns void

positionConstraints

  • 限制物体的位移(X轴,Y轴,Z轴)。

    default

    [false, false, false]

    Returns BooleanVector3

  • 限制物体的位移(X轴,Y轴,Z轴)。

    Parameters

    Returns void

rotation

  • 直接获取或修改刚体在物理系统中的旋转(以四元数表示)。
    物理系统中的旋转是独立于节点系统中的Transform的,详见{@link //TODO}。

    *如果你不清楚修改这一项的后果,请不要手动修改它。修改Transform3D.eulerTransform3D.quaternion来代替。

    Returns Quaternion

  • 直接获取或修改刚体在物理系统中的旋转(以四元数表示)。
    物理系统中的旋转是独立于节点系统中的Transform的,详见{@link //TODO}。

    *如果你不清楚修改这一项的后果,请不要手动修改它。修改Transform3D.eulerTransform3D.quaternion来代替。

    Parameters

    Returns void

rotationConstraints

  • 限制物体的旋转(X轴,Y轴,Z轴)。

    default

    [false, false, false]

    Returns BooleanVector3

  • 限制物体的旋转(X轴,Y轴,Z轴)。

    Parameters

    Returns void

sleepThreshold

  • get sleepThreshold(): number
  • set sleepThreshold(v: number): void
  • 设置刚体进入休眠的动能阈值,动能的计算过程中会剔除质量大小的影响。
    关于休眠的定义,详见{@link //TODO}。

    default

    0.005

    Returns number

  • 设置刚体进入休眠的动能阈值,动能的计算过程中会剔除质量大小的影响。
    关于休眠的定义,详见{@link //TODO}。

    Parameters

    • v: number

    Returns void

solverIterations

  • get solverIterations(): number
  • set solverIterations(v: number): void
  • 设置物理模拟过程中解决碰撞的迭代次数。
    更高的迭代次数,会消耗更多性能,产生更自然的物理碰撞效果。
    如果发现静息状态的刚体(比如说放在地面上),会发生抖动,可以考虑提高这项数值。

    limit

    solverIterations > 0

    default

    6

    Returns number

  • 设置物理模拟过程中解决碰撞的迭代次数。
    更高的迭代次数,会消耗更多性能,产生更自然的物理碰撞效果。
    如果发现静息状态的刚体(比如说放在地面上),会发生抖动,可以考虑提高这项数值。

    Parameters

    • v: number

    Returns void

solverVelocityIterations

  • get solverVelocityIterations(): number
  • set solverVelocityIterations(v: number): void
  • 设置物理模拟过程中计算碰撞后速度的迭代次数。
    更高的迭代次数,会消耗更多性能,产生更准确的分离速度。

    limit

    solverVelocityIterations > 0

    default

    1

    Returns number

  • 设置物理模拟过程中计算碰撞后速度的迭代次数。
    更高的迭代次数,会消耗更多性能,产生更准确的分离速度。

    Parameters

    • v: number

    Returns void

useGravity

  • get useGravity(): boolean
  • set useGravity(v: boolean): void
  • 该刚体是否受重力影响。

    Returns boolean

  • 该刚体是否受重力影响。

    Parameters

    • v: boolean

    Returns void

velocity

  • 刚体的线性速度。

    *修改这一项会造成速度突变,一般情况下可以使用addForce来代替。

    Returns Vector3

  • 刚体的线性速度。

    *修改这一项会造成速度突变,一般情况下可以使用addForce来代替。

    Parameters

    Returns void

Methods

AddExplosionForce

  • AddExplosionForce(explosionForce: number, explosionPosition: Vector3, explosionRadius: number, upwardsModifier: number, mode: ForceMode): void
  • 生成一次模拟爆炸的力。
    爆炸范围可以视作一个球状物体,如果球体和刚体产生相交,则会在刚体上产生推力。
    推力的大小和相交点与球心的距离有关,推力的方向从球心指向相交点,推力作用位于相交点

    视刚体有无附着的碰撞体,分为两种情况:

    • 无碰撞体(或爆炸球心在刚体碰撞体内)
      相交的判定使用刚体的质心;相交点也取刚体的质心。
    • 有碰撞体
      相交的判定使用刚体的所有碰撞体;相交点取碰撞体距离球心最近的那一点。
    limit

    explosionForce > 0

    Parameters

    • explosionForce: number

      爆炸力的大小。

    • explosionPosition: Vector3

      爆炸球体的球心位置。

    • explosionRadius: number

      爆炸球体的半径。

    • upwardsModifier: number

      使用相对数值来修改推力的作用位置的y坐标。

    • mode: ForceMode

      力的类型。

    Returns void

AddForceAtPosition

  • 为刚体施加力,会影响刚体的线性速度角速度

    Parameters

    • force: Vector3

      世界坐标下矢量形式的力,作用在position位置上。

    • position: Vector3

      力的作用位置。

    • mode: ForceMode

      力的类型。

    Returns void

addForce

  • 为刚体施加力,会影响刚体的线性速度

    Parameters

    • force: Vector3

      世界坐标下矢量形式的力,作用在物体质心上。

    • mode: ForceMode

      力的类型。

    Returns void

addRelativeForce

  • 为刚体施加力,会影响刚体的线性速度

    Parameters

    • force: Vector3

      局部坐标下矢量形式的力,作用在物体质心上。

    • mode: ForceMode

      力的类型。

    Returns void

addRelativeTorque

  • 为刚体施加力矩,会影响刚体的角速度

    Parameters

    • torque: Vector3

      局部坐标下矢量形式的力矩。

    • mode: ForceMode

      力矩的类型。

    Returns void

addTorque

  • 为刚体施加力矩,会影响刚体的角速度

    Parameters

    • torque: Vector3

      世界坐标下矢量形式的力矩。

    • mode: ForceMode

      力矩的类型。

    Returns void

closestPointOnBounds

  • 测试刚体表面上距离某点最近的位置。
    如果给予的position在刚体内部,会返回position。
    如果刚体无附着的碰撞体,会返回[Infinity, Infinity, Infinity]。

    Parameters

    Returns Vector3

destroy

  • destroy(): void
  • Returns void

getPointVelocity

  • 获取刚体内某一点在世界坐标下的速度。

    Parameters

    • worldPoint: Vector3

      世界坐标下的位置(其实在刚体外也可以)。

    Returns Vector3

getRelativePointVelocity

  • 获取刚体内某一点在局部坐标下的速度。

    Parameters

    • relativePoint: Vector3

      局部坐标下的位置(其实在刚体外也可以)。

    Returns Vector3

getTypeName

  • getTypeName(): string

getWorldCenterOfMass

  • Returns Vector3

    刚体质心在世界坐标中的位置。

isDetached

  • isDetached(): boolean
  • Returns boolean

isSleeping

  • isSleeping(): boolean
  • see

    sleep

    Returns boolean

    刚体是否处于休眠状态。

movePosition

  • movePosition(position: Vector3): void
  • 对于运动学刚体来说,等于直接修改position
    对于运动学刚体来说,位置变化会在下一帧生效。可以视作物体在这一帧的物理模拟中沿直线路径移动到了目的地。

    see

    isKinematic

    Parameters

    • position: Vector3

      位移的终点

    Returns void

moveRotation

resetCenterOfMass

  • resetCenterOfMass(): void
  • 手动触发,根据刚体附着的碰撞体重新计算刚体的质心。

    see

    centerOfMass

    Returns void

resetInertiaTensor

  • resetInertiaTensor(): void
  • 手动触发,根据刚体附着的碰撞体重新计算刚体的转动惯量。

    see

    inertiaTensor

    Returns void

resetProperties

  • resetProperties(): void

setDensity

  • setDensity(density: number): void
  • 根据给定的密度和刚体附着的碰撞体,来计算刚体的质量。

    see

    mass

    Parameters

    • density: number

    Returns void

sleep

  • sleep(): void
  • 强迫刚体进入休眠状态(至少一帧),休眠状态详见{@link //todo}。
    *如果下一帧发生碰撞则会立刻醒来。

    Returns void

wakeUp

  • wakeUp(): void
  • 强制唤醒刚体(离开休眠状态)。

    see

    sleep

    Returns void

Generated using TypeDoc