Options
All
  • Public
  • Public/Protected
  • All
Menu

Class PhysicsSystem

物理系统。

脚本内通过engine.game.physicsSystem来获取。
实例上会挂载全局的物理配置,和一些物理工具接口。

Hierarchy

  • PhysicsSystem

Implements

  • IGameSystem

Index

Properties

active

active: boolean = false

物理系统是否启用。
游戏初始化后这一项会变为true

关闭这项会导致:

  1. 每帧的物理模拟不再进行;
  2. 物理组件无法初始化。

如果你很确定你的游戏不需要用到物理,并且也没有任何物理组件,可以手动关闭这一项。会略微提升性能。

autoSimulation

autoSimulation: boolean = true

每帧是否进行物理模拟

fixedDeltaTime

fixedDeltaTime: number = 0.02

不同于渲染帧,每次物理模拟的时长都是固定的。
将这一项变小,会消耗更多性能,产生更自然的模拟。

Readonly game

game: Game

maxPhysicsDeltaTime

maxPhysicsDeltaTime: number = 0.1

在每两个渲染帧之间,最多能进行时长为maxPhysicsDeltaTime的物理模拟
如果没有这一限制,那么在渲染帧花费时间较长的时候,物理模拟花费的时间也会很长,导致进一步性能恶化。

Accessors

bounceThreshold

  • get bounceThreshold(): number
  • set bounceThreshold(v: number): void
  • 两个碰撞体发生碰撞时,如果相对碰撞速度小于这一项,则不会弹开。

    limit

    bounceThreshold > 0

    default

    (0, -9.8, 0)

    Returns number

  • 两个碰撞体发生碰撞时,如果相对碰撞速度小于这一项,则不会弹开。

    Parameters

    • v: number

    Returns void

defaultContactOffset

  • get defaultContactOffset(): number
  • set defaultContactOffset(v: number): void
  • 默认contactOffset。

    default

    0.01

    see

    Collider.contactOffset

    Returns number

  • 默认contactOffset。

    Parameters

    • v: number

    Returns void

defaultMaxAngularSpeed

  • get defaultMaxAngularSpeed(): number
  • set defaultMaxAngularSpeed(v: number): void
  • 全局默认最大角速度。

    default

    0

    Returns number

  • 全局默认最大角速度。

    Parameters

    • v: number

    Returns void

defaultSolverIterations

  • get defaultSolverIterations(): number
  • set defaultSolverIterations(v: number): void
  • 全局默认碰撞解决迭代次数。

    default

    6

    see

    Rigidbody.solverIterations

    Returns number

  • 全局默认碰撞解决迭代次数。

    Parameters

    • v: number

    Returns void

defaultSolverVelocityIterations

  • get defaultSolverVelocityIterations(): number
  • set defaultSolverVelocityIterations(v: number): void
  • 全局默认碰撞解决迭代次数。

    default

    1

    see

    Rigidbody.solverVelocityIterations

    Returns number

  • 全局默认碰撞解决迭代次数。

    Parameters

    • v: number

    Returns void

gravity

  • 全局重力。

    default

    //TODO

    Returns Vector3

  • 全局重力。

    Parameters

    Returns void

sleepThreshold

  • get sleepThreshold(): number
  • set sleepThreshold(v: number): void
  • 全局默认休眠能量阈值。

    default

    0.005

    see

    Rigidbody.sleepThreshold

    Returns number

  • 全局默认休眠能量阈值。

    Parameters

    • v: number

    Returns void

Methods

boxCast

  • 在场景中沿射线移动一个长方体,检测场景中是否有碰撞体与长方体相交。

    Parameters

    • center: Vector3

      长方体的中心位置。

    • halfExtents: Vector3

      长方体的长宽高的一半

    • direction: Vector3

      射线方向。

    • Optional hit: RaycastHit

      用来接收碰撞信息的容器。

    • Optional orientation: Quaternion

      长方体的旋转(四元数)。

    • Optional maxDistance: number

      射线的最大长度。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns any

boxCastAll

  • 在场景中沿射线移动一个长方体,返回路径上中所有与长方体相交的碰撞体。

    Parameters

    • center: Vector3

      长方体的中心位置。

    • halfExtents: Vector3

      长方体的长宽高的一半

    • direction: Vector3

      射线方向。

    • Optional orientation: Quaternion

      长方体的旋转(四元数)。

    • Optional maxDistance: number

      射线的最大长度。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns RaycastHit[]

    所有相交信息。

capsuleCast

  • 在场景中沿射线移动一个胶囊体,检测场景中是否有碰撞体与胶囊体相交。

    Parameters

    • p1: Vector3

      (起点处)胶囊体一端的半球的球心。

    • p2: Vector3

      (起点处)胶囊体另一端的半球的球心。

    • radius: number

      胶囊体两端半球的半径。

    • direction: Vector3

      射线的方向。

    • Optional maxDistance: number

      射线的最大长度。

    • Optional hit: RaycastHit

      用来接收碰撞信息的容器。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns boolean

capsuleCastAll

  • 在场景中沿射线移动一个胶囊体,返回路径上中所有与胶囊体相交的碰撞体。

    Parameters

    • p1: Vector3

      (起点处)胶囊体一端的半球的球心。

    • p2: Vector3

      (起点处)胶囊体另一端的半球的球心。

    • radius: number

      胶囊体两端半球的半径。

    • direction: Vector3

      射线的方向。

    • Optional maxDistance: number

      射线的最大长度。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns RaycastHit[]

    所有相交信息。

checkBox

  • 检测场景中是否有碰撞体与给定长方体相交。

    Parameters

    • center: Vector3

      长方体的中心位置。

    • halfExtends: Vector3

      长方体的长宽高的一半

    • orientation: Quaternion

      长方体的旋转(四元数)。

    • Optional layermask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns boolean

    是否有相交。

checkCapsule

  • 检测场景中是否有碰撞体与给定胶囊体相交。

    Parameters

    • p1: Vector3

      胶囊体一端的半球的球心。

    • p2: Vector3

      胶囊体另一端的半球的球心。

    • radius: number

      胶囊体两端的半球的半径。

    • Optional layermask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns boolean

    是否有相交。

checkSphere

  • 检测场景中是否有碰撞体与给定球体相交。

    Parameters

    • origin: Vector3

      球心。

    • radius: number

      球体半径。

    • Optional layermask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns boolean

    是否有相交。

ignoreLayerCollision

  • ignoreLayerCollision(layer1: number, layer2: number, ignore?: boolean): void
  • 设定某一对layer之间是否会发生碰撞。

    Parameters

    • layer1: number
    • layer2: number
    • ignore: boolean = true

      true表示碰撞。

    Returns void

overlapBox

  • 检测场景中是否有碰撞体与给定长方体相交。

    Parameters

    • center: Vector3

      长方体的中心位置。

    • halfExtends: Vector3

      长方体的长宽高的一半

    • Optional orientation: Quaternion

      长方体的旋转(四元数)。

    • Optional layermask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns Collider[]

    所有相交的碰撞体。

overlapCapsule

  • 检测场景中是否有碰撞体与给定胶囊体相交。

    Parameters

    • p1: Vector3

      胶囊体一端的半球的球心。

    • p2: Vector3

      胶囊体另一端的半球的球心。

    • radius: number

      胶囊体两端的半球的半径。

    • Optional layermask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns Collider[]

    所有相交的碰撞体。

overlapSphere

  • 检测场景中是否有碰撞体与给定球体相交。

    Parameters

    • origin: Vector3

      球心。

    • radius: number

      球体半径。

    • Optional layermask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns Collider[]

    所有相交的碰撞体。

rayCast

  • 射线检测,判断给定射线是否与至少一个碰撞体相交,并返回与最近的那个碰撞体相交的信息。

    Parameters

    • origin: Vector3

      射线起点。

    • unitDir: Vector3

      射线方向(单位向量)。

    • Optional distance: number

      射线的最大长度。

    • Optional hit: RaycastHit

      用来接收碰撞信息的容器。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns boolean

rayCastAll

  • 射线检测,返回与射线相交的所有碰撞体的信息。

    Parameters

    • origin: Vector3

      射线起点。

    • unitDir: Vector3

      射线方向(单位向量)。

    • Optional distance: number

      射线的最大长度。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns RaycastHit[]

    所有相交信息。

sphereCast

  • 在场景中沿射线移动一个球体,检测场景中是否有碰撞体与球体相交。

    Parameters

    • origin: Vector3

      (起点处)球心。

    • radius: number

      球体半径。

    • direction: Vector3

      射线方向。

    • Optional maxDistance: number

      射线的最大长度。

    • Optional hit: RaycastHit

      用来接收碰撞信息的容器。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns boolean

sphereCastAll

  • 在场景中沿射线移动一个球体,返回路径上中所有与球体相交的碰撞体。

    Parameters

    • origin: Vector3

      (起点处)球心。

    • radius: number

      球体半径。

    • direction: Vector3

      射线方向。

    • Optional maxDistance: number

      射线的最大长度。

    • Optional layerMask: number

      可以用来屏蔽一些碰撞体。

    • Optional queryTriggerInteraction: QueryTriggerInteraction

      暂未实现,默认能与Trigger相交。

    Returns RaycastHit[]

    所有相交信息。

Generated using TypeDoc