Skip to content

EngineCore

Defined in: packages/threeplay/src/core/types.ts:239

The core API: object tree, events, scenes, time, timers and loading.

add<T>(comps?): GameObj<MergeComps<T[number]>>

Defined in: packages/threeplay/src/core/types.ts:257

Adds an object to the scene.

T extends CompList

readonly [T]

GameObj<MergeComps<T[number]>>


destroy(obj): void

Defined in: packages/threeplay/src/core/types.ts:259

Destroys an object.

GameObj

void


destroyAll(tag): void

Defined in: packages/threeplay/src/core/types.ts:261

Destroys every object with a tag.

string

void


dt(): number

Defined in: packages/threeplay/src/core/types.ts:298

Seconds since the last frame (scaled).

number


fixedDt(): number

Defined in: packages/threeplay/src/core/types.ts:300

Seconds of a fixed step (scaled).

number


get(tag, opts?): GameObj<Record<string, any>>[]

Defined in: packages/threeplay/src/core/types.ts:263

Objects with the given tag(s), searching the whole tree by default.

string | string[]

GetOpts

GameObj<Record<string, any>>[]


getSceneName(): string | null

Defined in: packages/threeplay/src/core/types.ts:294

Name of the running scene.

string | null


getTimeScale(): number

Defined in: packages/threeplay/src/core/types.ts:305

number


go(name, …args): void

Defined in: packages/threeplay/src/core/types.ts:292

Switches to a scene: clears objects and scene listeners, then runs it.

string

…unknown[]

void


isLoaded(): boolean

Defined in: packages/threeplay/src/core/types.ts:329

boolean


isPaused(): boolean

Defined in: packages/threeplay/src/core/types.ts:308

boolean


load<T>(task): Promise<T>

Defined in: packages/threeplay/src/core/types.ts:326

Registers a loading task. The first scene waits for every task.

T

Promise<T>

Promise<T>


loadProgress(): number

Defined in: packages/threeplay/src/core/types.ts:328

0–1.

number


loop(seconds, fn, count?): TimerController

Defined in: packages/threeplay/src/core/types.ts:314

Runs fn every seconds (right away first), count times or forever.

number

() => void

number

TimerController


on(event, fn): EventController

Defined in: packages/threeplay/src/core/types.ts:267

Global event listener, or per-tag object event listener with on(event, tag, fn).

string

(…args) => void

EventController

on(event, tag, fn): EventController

Defined in: packages/threeplay/src/core/types.ts:268

string

string

(obj, …args) => void

EventController


onAdd(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:278

When any object (or one with tag) is added.

(obj) => void

EventController

onAdd(tag, fn): EventController

Defined in: packages/threeplay/src/core/types.ts:279

string

(obj) => void

EventController


onDestroy(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:281

When any object (or one with tag) is destroyed.

(obj) => void

EventController

onDestroy(tag, fn): EventController

Defined in: packages/threeplay/src/core/types.ts:282

string

(obj) => void

EventController


onFixedUpdate(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:275

At the fixed rate, or for every object with tag.

() => void

EventController

onFixedUpdate(tag, fn): EventController

Defined in: packages/threeplay/src/core/types.ts:276

string

(obj) => void

EventController


onLoad(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:284

When all assets are loaded (runs right away if they already are).

() => void

EventController


onQuit(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:337

Runs fn when the engine quits.

() => void

EventController


onSceneLeave(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:286

When the current scene ends.

(next) => void

EventController


onUpdate(fn): EventController

Defined in: packages/threeplay/src/core/types.ts:272

Every frame, or for every object with tag every frame.

() => void

EventController

onUpdate(tag, fn): EventController

Defined in: packages/threeplay/src/core/types.ts:273

string

(obj) => void

EventController


quit(): void

Defined in: packages/threeplay/src/core/types.ts:335

Stops the loop and disposes every plugin.

void


scene(name, def): void

Defined in: packages/threeplay/src/core/types.ts:290

Defines a scene.

string

SceneDef

void


setPaused(paused): void

Defined in: packages/threeplay/src/core/types.ts:307

Pauses every update (rendering continues).

boolean

void


setTimeScale(scale): void

Defined in: packages/threeplay/src/core/types.ts:304

Speeds up (>1) or slows down (<1) the game.

number

void


step(dt?): void

Defined in: packages/threeplay/src/core/types.ts:333

Advances one frame by dt seconds (for loop: "manual" and tests).

number

void


time(): number

Defined in: packages/threeplay/src/core/types.ts:302

Seconds since start.

number


trigger(event, …args): void

Defined in: packages/threeplay/src/core/types.ts:270

Emits a global event.

string

…unknown[]

void


tween<V>(from, to, duration, set, easing?): TimerController

Defined in: packages/threeplay/src/core/types.ts:316

Animates a value from from to to, calling set each frame.

V extends Tweenable

V

V

number

(value) => void

Easing

TimerController


wait(seconds, fn?): TimerController

Defined in: packages/threeplay/src/core/types.ts:312

Runs fn after seconds of game time. Awaitable.

number

() => void

TimerController

camera3d: PerspectiveCamera

Defined in: packages/threeplay/src/core/types.ts:249

The camera used to render. Replace it or move it at will.


readonly hooks: Hooks

Defined in: packages/threeplay/src/core/types.ts:251

System hooks for plugins.


readonly opts: Readonly<ThreeplayOpts>

Defined in: packages/threeplay/src/core/types.ts:243

Options passed to threeplay().


readonly plugins: Readonly<Record<string, object>>

Defined in: packages/threeplay/src/core/types.ts:253

APIs of the installed plugins, by plugin name.


readonly root: GameObj

Defined in: packages/threeplay/src/core/types.ts:245

Root of the object tree. Every scene object is a descendant.


readonly scene3d: Scene

Defined in: packages/threeplay/src/core/types.ts:247

The three.js scene. root.object3d lives inside it.


readonly THREE: __module

Defined in: packages/threeplay/src/core/types.ts:241

The three.js namespace bundled with the engine (escape hatch).