Options
All
  • Public
  • Public/Protected
  • All
Menu

Class RigidBody

2D物理刚体

Hierarchy

Index

Constructors

constructor

Properties

awaked

awaked: boolean = false

脚本或动画是否激活

colliders

colliders: Collider[] = []

刚体上的碰撞体列表

context

context: IScriptContext = {}

脚本上下文

currentTime

currentTime: number = 0

当前播放到的时间,单位为毫秒,如果loop=true,则此时间可能会被重置

delay

delay: number = 0

脚本或动画延迟激活的时间,单位为毫秒

destroyed

destroyed: boolean = false

脚本是否被销毁

duration

duration: number = 0

脚本或动画的持续时长,单位为毫秒

ended

ended: boolean = false

脚本或动画是否结束

id

id: number = -1

脚本或动画的ID,由编辑器产生

joints

joints: Joint[] = []

刚体上的关节列表

name

name: string = ''

脚本或动画名称,可以用来作为调试显示

playBySelf

playBySelf: boolean = false

是否自我驱动,设置为true后,脚本或动画不再受场景时间轴的控制,即使场景时间轴停止,脚本或动画也会继续执行

Accessors

allowRotation

  • get allowRotation(): boolean
  • set allowRotation(value: boolean): void
  • 是否允许旋转,如果不希望刚体旋转,则设置为false,默认为true

    Returns boolean

  • 是否允许旋转,如果不希望刚体旋转,则设置为false,默认为true

    Parameters

    • value: boolean

    Returns void

allowSleep

  • get allowSleep(): boolean
  • set allowSleep(value: boolean): void
  • 是否允许休眠,允许休眠能提高性能,默认为true

    Returns boolean

  • 是否允许休眠,允许休眠能提高性能,默认为true

    Parameters

    • value: boolean

    Returns void

angularDamping

  • get angularDamping(): number
  • set angularDamping(value: number): void
  • 旋转速度阻尼系数,范围可以在0到无穷大之间,默认为0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间

    Returns number

  • 旋转速度阻尼系数,范围可以在0到无穷大之间,默认为0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间

    Parameters

    • value: number

    Returns void

angularVelocity

  • get angularVelocity(): number
  • set angularVelocity(value: number): void
  • 角速度,设置会导致旋转,单位为角度

    Returns number

  • 角速度,设置会导致旋转,单位为角度

    Parameters

    • value: number

    Returns void

bullet

  • get bullet(): boolean
  • set bullet(value: boolean): void
  • 是否高速移动的物体,设置为true,可以防止高速穿透,默认为false

    Returns boolean

  • 是否高速移动的物体,设置为true,可以防止高速穿透,默认为false

    Parameters

    • value: boolean

    Returns void

collideGroup

  • get collideGroup(): number
  • set collideGroup(value: number): void
  • 设置所属碰撞组, 不同的碰撞组不发生碰撞,默认碰撞组(0)与其他碰撞组都可以发生碰撞。取值0-31

    Returns number

  • 设置所属碰撞组, 不同的碰撞组不发生碰撞,默认碰撞组(0)与其他碰撞组都可以发生碰撞。取值0-31

    Parameters

    • value: number

    Returns void

enabled

  • get enabled(): boolean
  • set enabled(value: boolean): void
  • 是否启用脚本或动画

    Returns boolean

  • 是否启用脚本或动画

    Parameters

    • value: boolean

    Returns void

gravityScale

  • get gravityScale(): number
  • set gravityScale(value: number): void
  • 重力缩放系数,设置为0为没有重力,默认为1

    Returns number

  • 重力缩放系数,设置为0为没有重力,默认为1

    Parameters

    • value: number

    Returns void

linearDamping

  • get linearDamping(): number
  • set linearDamping(value: number): void
  • 线性速度阻尼系数,范围可以在0到无穷大之间,默认为0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间

    Returns number

  • 线性速度阻尼系数,范围可以在0到无穷大之间,默认为0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间

    Parameters

    • value: number

    Returns void

linearVelocity

  • get linearVelocity(): { x: number; y: number }
  • set linearVelocity(value: { x: number; y: number }): void
  • 线性运动速度,比如 {x:5,y:5}

    Returns { x: number; y: number }

    • x: number
    • y: number
  • 线性运动速度,比如 {x:5,y:5}

    Parameters

    • value: { x: number; y: number }
      • x: number
      • y: number

    Returns void

rigidBodyCategory

  • get rigidBodyCategory(): string
  • set rigidBodyCategory(value: string): void
  • 刚体类别,方便在碰撞触发方式那里进行筛选,留空表示不进行筛选。

    Returns string

  • 刚体类别,方便在碰撞触发方式那里进行筛选,留空表示不进行筛选。

    Parameters

    • value: string

    Returns void

rigidBodyType

  • get rigidBodyType(): "static" | "dynamic" | "kinematic"
  • set rigidBodyType(value: "static" | "dynamic" | "kinematic"): void
  • 刚体类型,支持三种类型static,dynamic和kinematic类型 static为静态类型,静止不动,不受重力影响,质量无限大,可以通过节点移动,旋转,缩放进行控制 dynamic为动态类型,接受重力影响 kinematic为运动类型,不受重力影响,可以通过施加速度或者力的方式使其运动

    Returns "static" | "dynamic" | "kinematic"

  • 刚体类型,支持三种类型static,dynamic和kinematic类型 static为静态类型,静止不动,不受重力影响,质量无限大,可以通过节点移动,旋转,缩放进行控制 dynamic为动态类型,接受重力影响 kinematic为运动类型,不受重力影响,可以通过施加速度或者力的方式使其运动

    Parameters

    • value: "static" | "dynamic" | "kinematic"

    Returns void

root

  • get root(): undefined | IAnimation
  • 获得所在的根节点,如果是互动组件,则是 Animation,否者和 this.scene 相同

    Returns undefined | IAnimation

scene

  • get scene(): undefined | Scene
  • 当前场景的引用

    Returns undefined | Scene

target

  • get target(): undefined | Node
  • set target(value: undefined | Node): void
  • 脚本或动画控制的对象

    Returns undefined | Node

  • 脚本或动画控制的对象

    Parameters

    • value: undefined | Node

    Returns void

time

  • get time(): number
  • set time(value: number): void
  • deprecated

    请用delay属性代替

    Returns number

  • deprecated

    请用delay属性代替

    Parameters

    • value: number

    Returns void

Methods

applyForce

  • applyForce(position: Point, force: Point): void
  • 对刚体施加力

    Parameters

    • position: Point

      施加力的点,如{x:100,y:100},全局坐标

    • force: Point

      施加的力,如{x:0.1,y:0.1}

    Returns void

applyForceToCenter

  • applyForceToCenter(force: Point): void
  • 从中心点对刚体施加力,防止对象旋转

    Parameters

    • force: Point

      施加的力,如{x:0.1,y:0.1}

    Returns void

applyLinearImpulse

  • applyLinearImpulse(position: Point, impulse: Point): void
  • 施加速度冲量,添加的速度冲量会与刚体原有的速度叠加,产生新的速度

    Parameters

    • position: Point

      施加力的点,如{x:100,y:100},全局坐标

    • impulse: Point

      施加的速度冲量,如{x:0.1,y:0.1}

    Returns void

applyLinearImpulseToCenter

  • applyLinearImpulseToCenter(impulse: Point): void
  • 施加速度冲量,添加的速度冲量会与刚体原有的速度叠加,产生新的速度

    Parameters

    • impulse: Point

      施加的速度冲量,如{x:0.1,y:0.1}

    Returns void

applyTorque

  • applyTorque(torque: number): void
  • 对刚体施加扭矩,使其旋转

    Parameters

    • torque: number

      施加的扭矩

    Returns void

destroy

  • destroy(): void
  • 销毁脚本或动画

    Returns void

end

  • end(): void
  • 立即结束脚本或动画

    Returns void

getCenter

  • getCenter(): Point
  • 获得质心的相对节点0,0点的位置偏移

    Returns Point

getMass

  • getMass(): number
  • 获得刚体质量

    Returns number

getWorldCenter

  • getWorldCenter(): Point
  • 获得质心的世界坐标,相对于Physics.I.worldRoot节点

    Returns Point

onAwake

  • onAwake(): void
  • 脚本或动画被激活时触发,在时间轴运行到脚本位置时,脚本会被激活,此时脚本才开始被执行,激活只会被触发一次

    Returns void

onClick

  • onClick(): void
  • 鼠标或者手指在对象上点击时触发

    Returns void

onCollisionEnter

  • 2D物体开始触发或碰撞时执行

    Parameters

    Returns void

onCollisionEnter3D

  • onCollisionEnter3D(collision: Collision3D): void
  • 3D物体开始碰撞时执行 此方法为虚方法,使用时重写覆盖即可

    Parameters

    • collision: Collision3D

    Returns void

onCollisionExit

  • 2D物体结束触发或碰撞时执行

    Parameters

    Returns void

onCollisionExit3D

  • onCollisionExit3D(collision: Collision3D): void
  • 3D物体结束碰撞时执行 此方法为虚方法,使用时重写覆盖即可

    Parameters

    • collision: Collision3D

    Returns void

onCollisionStay

  • 2D物体持续触发或碰撞时执行

    Parameters

    Returns void

onCollisionStay3D

  • onCollisionStay3D(collision: Collision3D): void
  • 3D物体持续碰撞时执行 此方法为虚方法,使用时重写覆盖即可

    Parameters

    • collision: Collision3D

    Returns void

onDestroy

  • onDestroy(): void
  • 脚本或动画被销毁时触发,场景被销毁,脚本会跟随一起销毁

    Returns void

onDisable

  • onDisable(): void
  • 脚本或动画被禁用时触发,在enabled=false,或者target=undefined 时会被禁用

    Returns void

onEditor

  • onEditor(): void
  • 用于自定义脚本实现编辑时可视化效果。在编辑器里进行编辑的情况下,每当脚本属性发生变化时触发 注意:该接口被执行后,脚本实例会立即销毁掉,请不要在脚本实例里保存变量。如有需要,请保存在目标对象target内。

    Returns void

onEnable

  • onEnable(): void
  • 脚本或动画被启用时触发,此时 this.target 对象可以使用了,但脚本还未被执行,可能会被触发多次

    Returns void

onEnter

  • onEnter(): void
  • 脚本或动画每次开始播放时触发,可能会被触发多次

    Returns void

onKeyDown

  • onKeyDown(keyCode: number): void
  • 键盘按下时

    Parameters

    • keyCode: number

      键盘按键

    Returns void

onKeyUp

  • onKeyUp(keyCode: number): void
  • 键盘抬起时

    Parameters

    • keyCode: number

      键盘按键

    Returns void

onLateUpdate

  • onLateUpdate(): void
  • 脚本或动画被激活后,会被每帧调用,在所有 onUpdate 调用完后调用,即使场景被暂停,onLateUpdate 也会继续更新,注意避免不必要的计算

    Returns void

onLeave

  • onLeave(): void
  • 脚本或动画每次播放完毕后触发,可能会被触发多次

    Returns void

onMouseDown

  • onMouseDown(): void
  • 鼠标或者手指在对象上按下时触发

    Returns void

onMouseMove

  • onMouseMove(): void
  • 鼠标或者手指在对象上移动时触发

    Returns void

onMouseUp

  • onMouseUp(): void
  • 鼠标或者手指在对象上抬起时触发

    Returns void

onReset

  • onReset(): void
  • 脚本或动画被重置时触发,调用动画的gotoAndStop(time)时,在满足条件 script.awaked && time < script.delay 时会被重置

    Returns void

onStageMouseDown

  • onStageMouseDown(target: Node): void
  • 鼠标或者手指在舞台按下时触发

    Parameters

    • target: Node

      当前目标对象

    Returns void

onStageMouseMove

  • onStageMouseMove(target: Node): void
  • 鼠标或者手指在舞台上移动时触发

    Parameters

    • target: Node

      当前目标对象

    Returns void

onStageMouseUp

  • onStageMouseUp(target: Node): void
  • 鼠标或者手指在舞台抬起时触发

    Parameters

    • target: Node

      当前目标对象

    Returns void

onTriggerEnter3D

  • onTriggerEnter3D(other: Sprite3D): void
  • 3D物体开始触发时执行 此方法为虚方法,使用时重写覆盖即可

    Parameters

    • other: Sprite3D

    Returns void

onTriggerExit3D

  • onTriggerExit3D(other: Sprite3D): void
  • 3D物体结束触发时执行 此方法为虚方法,使用时重写覆盖即可

    Parameters

    • other: Sprite3D

    Returns void

onTriggerStay3D

  • onTriggerStay3D(other: Sprite3D): void
  • 3D物体持续触发时执行 此方法为虚方法,使用时重写覆盖即可

    Parameters

    • other: Sprite3D

    Returns void

onUpdate

  • onUpdate(): void
  • 脚本或动画被激活后,会被每帧调用,即使场景被暂停,onUpdate也会继续更新,注意避免不必要的计算

    Returns void

play

  • play(): void
  • 播放脚本或动画

    Returns void

reset

  • reset(): void
  • 重置动画,方便再次播放

    Returns void

setAngle

  • setAngle(value: number): void
  • 设置角度

    Parameters

    • value: number

      单位为角度

    Returns void

setVelocity

  • setVelocity(velocity: { x?: number; y?: number }): void
  • 设置线性速度,比如{x:10,y:10}

    Parameters

    • velocity: { x?: number; y?: number }
      • Optional x?: number
      • Optional y?: number

    Returns void