Class: Physics2DSystem
Unity-style 2D physics over a pluggable IPhysics2DBackend. Runs in Update — the fixed step — after scripts, animation, tweens and schedules, so what they did this tick is simulated this tick. Each step:
- links components to bodies / fixtures / joints (creating, rebuilding, dropping),
- picks up transform edits (a static body follows its transform; a dynamic one is teleported; a kinematic one is driven there so it pushes what's in the way),
- steps the world and dispatches the contact / trigger / joint-break events. Physics2DPoseSystem (PreRender) then writes the simulated poses into the world transforms.
It owns dirty on Rigidbody2D, the colliders and the joints. Nothing exists outside a run: in the editor's edit mode the Update phase is detached, so OnStart / OnStop bound the world.
Extends
Implements
Constructors
Constructor
ts
new Physics2DSystem(): Physics2DSystem;Returns
Physics2DSystem
Inherited from
Properties
| Property | Modifier | Type | Default value | Inherited from |
|---|---|---|---|---|
enabled | public | boolean | true | System.enabled |
parallel | public | boolean | false | System.parallel |
Accessors
autoSimulation
Get Signature
ts
get autoSimulation(): boolean;Returns
boolean
Set Signature
ts
set autoSimulation(v): void;Parameters
| Parameter | Type |
|---|---|
v | boolean |
Returns
void
Methods
GetBackend()
ts
GetBackend():
| IPhysics2DBackend
| null;Returns
| IPhysics2DBackend | null
GetLayersCollide()
ts
GetLayersCollide(a, b): boolean;Parameters
| Parameter | Type |
|---|---|
a | number |
b | number |
Returns
boolean
GetName()
ts
GetName(): string;Returns
string
Overrides
GetOrder()
ts
GetOrder(): SystemOrder;Ordered: what they moved this tick is simulated this tick.
Returns
SystemOrder
GetPhase()
ts
GetPhase(): SystemPhase;Returns
Overrides
GetSettings()
ts
GetSettings(): Readonly<Physics2DSettings>;Returns
Readonly<Physics2DSettings>
GetSimulatedEntities()
ts
GetSimulatedEntities(out): number[];Entities with a simulated body — the editor marks them.
Parameters
| Parameter | Type |
|---|---|
out | number[] |
Returns
number[]
IsSimulating()
ts
IsSimulating(): boolean;A world exists — a run with a backend.
Returns
boolean
OnBeginContact()
ts
OnBeginContact(
a,
b,
m
): void;Can arrive mid-step: record, don't touch the world.
Parameters
| Parameter | Type |
|---|---|
a | IPhysicsFixture2D |
b | IPhysicsFixture2D |
m | Contact2DManifold |
Returns
void
Implementation of
IContactListener2D.OnBeginContact
OnClose()
ts
OnClose(): void;Returns
void
Inherited from
OnEndContact()
ts
OnEndContact(a, b): void;Parameters
| Parameter | Type |
|---|---|
a | IPhysicsFixture2D |
b | IPhysicsFixture2D |
Returns
void
Implementation of
IContactListener2D.OnEndContact
OnInit()
ts
OnInit(_engine): void;Parameters
| Parameter | Type |
|---|---|
_engine | IEngine |
Returns
void
Inherited from
OnRender()
ts
OnRender(_scene, _renderer): void | Promise<void>;Parameters
| Parameter | Type |
|---|---|
_scene | Scene |
_renderer | IRenderer |
Returns
void | Promise<void>
Inherited from
OnRendererChanged()
ts
OnRendererChanged(_renderer): void;Parameters
| Parameter | Type |
|---|---|
_renderer | IRenderer |
Returns
void
Inherited from
OnStart()
ts
OnStart(scene, _renderer): void;Parameters
| Parameter | Type |
|---|---|
scene | Scene |
_renderer | IRenderer |
Returns
void
Overrides
OnStop()
ts
OnStop(_scene): void;Parameters
| Parameter | Type |
|---|---|
_scene | Scene |
Returns
void
Overrides
OnUpdate()
ts
OnUpdate(scene, dt): void;---------- Tick ---------- Timed as Physics for the stats overlay; contact callbacks into scripts count as Scripts.
Parameters
| Parameter | Type |
|---|---|
scene | Scene |
dt | number |
Returns
void
Overrides
OverlapPoint()
ts
OverlapPoint(
x,
y,
layerMask,
all
): Collider2DComponent[];Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
layerMask | number |
all | boolean |
Returns
OverlapShape()
ts
OverlapShape(
shape,
x,
y,
angle,
layerMask,
all
): Collider2DComponent[];Parameters
| Parameter | Type |
|---|---|
shape | Shape2D |
x | number |
y | number |
angle | number |
layerMask | number |
all | boolean |
Returns
Override()
ts
Override(partial): void;This run only (Game.physics2D) — ResetOverrides goes back to the project's.
Parameters
| Parameter | Type |
|---|---|
partial | Partial<Physics2DSettings> |
Returns
void
Raycast()
ts
Raycast(
ox,
oy,
dx,
dy,
distance,
layerMask
): RaycastHit2D | null;Parameters
| Parameter | Type |
|---|---|
ox | number |
oy | number |
dx | number |
dy | number |
distance | number |
layerMask | number |
Returns
RaycastHit2D | null
RaycastAll()
ts
RaycastAll(
ox,
oy,
dx,
dy,
distance,
layerMask
): RaycastHit2D[];Parameters
| Parameter | Type |
|---|---|
ox | number |
oy | number |
dx | number |
dy | number |
distance | number |
layerMask | number |
Returns
ResetOverrides()
ts
ResetOverrides(): void;Returns
void
SetBackend()
ts
SetBackend(backend): void;---------- Configuration ---------- null switches physics off: bodies are dropped and the components sit idle.
Parameters
| Parameter | Type |
|---|---|
backend | | IPhysics2DBackend | null |
Returns
void
SetGravity()
ts
SetGravity(x, y): void;Parameters
| Parameter | Type |
|---|---|
x | number |
y | number |
Returns
void
SetLayersCollide()
ts
SetLayersCollide(
a,
b,
collide
): void;Parameters
| Parameter | Type |
|---|---|
a | number |
b | number |
collide | boolean |
Returns
void
SetSettings()
ts
SetSettings(partial): void;Parameters
| Parameter | Type |
|---|---|
partial | Partial<Physics2DSettings> |
Returns
void
Simulate()
ts
Simulate(dt): void;Steps the world by dt seconds now — with autoSimulation off, a script drives physics.
Parameters
| Parameter | Type |
|---|---|
dt | number |
Returns
void
WritePoses()
ts
WritePoses(scene, alpha): void;---------- Pose pass (Physics2DPoseSystem) ---------- Writes each moving body's pose — interpolated by alpha (0..1 between the last two steps) when its Rigidbody2D interpolates — into its entity's world transform.
Parameters
| Parameter | Type |
|---|---|
scene | Scene |
alpha | number |
Returns
void