微信小程序

PhysicsSystem

xr-frame / Exports / PhysicsSystem

# Class: PhysicsSystem

物理系统,管理着场景中的所有轮廓和刚体。

# Hierarchy

  • Component<IPhysicsSystemData>

    PhysicsSystem

# Table of contents

# Constructors

  • constructor

# Events

  • onAdd
  • onRelease
  • onRemove
  • onTick
  • onUpdate

# Properties

  • enableSimulation
  • fixedDeltaTime
  • maxPhysicsDeltaTime
  • priority
  • schema
  • EVENTS

# Accessors

  • el
  • gravity
  • scene
  • version

# Methods

  • getData
  • ignoreLayerCollision
  • raycast
  • setData
  • setDataOne

# Constructors

# constructor

new PhysicsSystem()

# Overrides

Component.constructor

# Events

# onAdd

onAdd(): void

所挂载的element被挂载到场景时触发的回调。

# Returns

void

# Inherited from

Component.onAdd

# onRelease

onRelease(data): void

从被挂载的element上被移除,或是element被销毁时,触发的回调。 一般用于释放持有的资源。

# Parameters
Name Type
data IPhysicsSystemData
# Returns

void

# Inherited from

Component.onRelease

# onRemove

onRemove(parent, data): void

所挂载的element从父节点parent被移除时,或者自己从element上被移除时,触发的回调。 一般用于消除功能的运作。 如果一个组件的元素直接被销毁了,那这个组件就不会经历onRemove而是直接进入onRelease。

# Parameters
Name Type
parent Element
data IPhysicsSystemData
# Returns

void

# Inherited from

Component.onRemove

# onTick

onTick:

# Inherited from

Component.onTick

# onUpdate

onUpdate(data, preData): void

数据更新时触发的回调。

# Parameters
Name Type
data IPhysicsSystemData
preData IPhysicsSystemData
# Returns

void

# Inherited from

Component.onUpdate

# Properties

# enableSimulation

enableSimulation: boolean = false

是否进行物理模拟。

# fixedDeltaTime

fixedDeltaTime: number = 0.02

# maxPhysicsDeltaTime

maxPhysicsDeltaTime: number = 0.1

# priority

Readonly priority: number

自定义组件的更新优先级。

# Inherited from

Component.priority

# schema

Readonly schema: IComponentSchema = {}

自定义组件的schema

# Inherited from

Component.schema

# EVENTS

Static EVENTS: string[] = []

# Inherited from

Component.EVENTS

# Accessors

# el

get el(): Element

挂载的元素。

# Returns

Element

# gravity

get gravity(): Vector3

全局重力。

default [0, -9.8, 0]

# Returns

Vector3

set gravity(v): void

全局重力。

# Parameters
Name Type
v Vector3
# Returns

void

# scene

get scene(): Scene

当前场景。

# Returns

Scene

# version

get version(): number

当前版本,每次有数据更新都会增加,可以用作和其他组件合作的依据。

# Returns

number

# Methods

# getData

getData<T>(key): IPhysicsSystemData[T]

获取一个当前值。

# Type parameters
Name Type
T extends never
# Parameters
Name Type
key T
# Returns

IPhysicsSystemData[T]

# Inherited from

Component.getData

# ignoreLayerCollision

ignoreLayerCollision(layer1, layer2, ignore?): void

设定某一对layer之间是否会发生碰撞。

# Parameters
Name Type Default value Description
layer1 number undefined -
layer2 number undefined -
ignore boolean true true表示碰撞。
# Returns

void

# raycast

raycast(desc): boolean

射线检测,判断给定射线是否与至少一个轮廓相交,并返回与最近的那个轮廓相交的信息。 返回的信息记录在desc.hit里,需要事先创建一个RaycastHit对象来负责接收。

# Parameters
Name Type
desc RaycastDesc
# Returns

boolean

# setData

setData(data): void

不通过xml而是直接设置data,注意值的类型需要和schema中一致。

# Parameters
Name Type
data Partial<IPhysicsSystemData>
# Returns

void

# Inherited from

Component.setData

# setDataOne

setDataOne<T>(key, value): void

设置一个数据。

# Type parameters
Name Type
T extends never
# Parameters
Name Type
key T
value IPhysicsSystemData[T]
# Returns

void

# Inherited from

Component.setDataOne