Zum Hauptinhalt springen

ecs

Eigenschaften

Typen

info

Currently, storing dynamically sized objects or lists isn’t supported. We’re actively exploring this feature and would love to hear about your specific use cases.

The following data types are useful for creating Schema properties on a Custom Component or references to a specific type.

TypeDescription
ecs.eidEntity Reference
ecs.f3232-bit floating-point number
ecs.f6464-bit floating-point number
ecs.i3232-bit integer
ecs.ui88-bit unsigned integer
ecs.ui3232-bit unsigned integer
ecs.stringString
ecs.booleanBoolean

Funktionen

registerComponent

Registriert eine Komponente beim ECS.

ecs.registerComponent({
name: string,
schema: Schema,
data: Schema,
schemaDefaults: Object,
add: function
remove: function,
tick: function
}) // -> Komponenten-Handle

Zustand

ParameterTypBeschreibung
Auslöser (erforderlich)Record<String, Trigger[]>Bezeichnung der nächsten Zustände, in die dieser Zustand übergeht, und der Auslöser dafür.
onEnterFunktionFunktion, die aufgerufen wird, bevor der Zustand betreten wird.
onExitFunktionFunktion, die aufgerufen wird, bevor der Zustand betreten wird.

Auslöser

EventTrigger
ParameterTypBeschreibung
type (erforderlich)Konstante: 'Ereignis'Eine Konstante zur Angabe der Art des Auslösers
event (erforderlich)StringDer Ereignistyp, der dies auslöst
ZieleidDie Entität, für die dieser Trigger den Status ändern soll
beforeTransition(Ereignis) => booleschEine Funktion, die vor dem Übergang ausgeführt wird. Wenn das Ergebnis wahr ist, wird der Übergang beendet und der Zustand ändert sich nicht.
TimeoutTrigger
ParameterTypBeschreibung
type (erforderlich)Konstante: 'Zeitüberschreitung'Eine Konstante zur Angabe der Art des Auslösers
timeout (erforderlich)NummerDie Anzahl der Millisekunden vor dem Übergang

createStateMachine

Erstellen Sie einen Zustandsautomaten.

ecs.createStateMachine(world, owner, {initialState: string, states: Record<string, State>}) // -> State Machine ID

deleteStateMachine

Löschen eines Zustandsautomaten.

ecs.deleteStateMachine(world, machineId) // -> void

defineState

Definieren Sie einen Zustand.

ecs.defineState(name: string) // -> Zustand

erste

Markieren Sie diesen Zustand als Anfangszustand des Zustandsautomaten

ecs.defineState(name).initial() // -> void

onEnter

Legen Sie einen Callback fest, der beim Eintritt in diesen Zustand ausgeführt wird.

ecs.defineState(name).onEnter(callback) // -> void

onEvent

Veranstaltung
ParameterTypBeschreibung
Zieleiddie Entität, für die dieser Auslöser den Status ändern soll
beforeTransition(Ereignis) => booleschFunktion, die vor dem Übergang ausgeführt wird; wenn das Ergebnis wahr ist, wird der Übergang beendet und der Zustand ändert sich nicht

Auslösen eines Übergangs zum nächsten Zustand, wenn ein Ereignis empfangen wird.

ecs.defineState(name).onEvent(event: string, nextState: string | State, args: EventObject) // -> void

onExit

Legen Sie einen Callback fest, der beim Verlassen dieses Zustands ausgeführt wird.

ecs.defineState(name).onExit(callback) // -> void

warten

Warten Sie, bevor Sie den Zustand wechseln.

ecs.defineState(name).wait(waitTime: Zahl, nextState: String | State) // -> void

defineSystem

Definieren Sie ein System.

ecs.defineSystem([Begriffe]: string[], Verhalten: function) // -> System

defineQuery

Definieren Sie eine Abfrage.

ecs.defineQuery([Begriffe: string]) // -> Rückruf

getAttribute

Eingebaute Komponenten werden auch als eine Eigenschaft von ecs angezeigt.

ecs.getAttribute(attributeName: string) // -> das Attribut, das mit diesem Namen registriert wurde.

listAttributes

Gibt eine Liste von Attributen zurück.

ecs.listAttributes() // -> string[]

getBehaviors

Gibt eine Liste der registrierten Verhaltensweisen zurück.

ecs.getBehaviors() // -> Funktion[]

registerBehavior

Registrieren Sie eine Funktion, die bei jedem Tick in der Welt ausgeführt wird.

ecs.registerBehavior(behavior: function) // -> void

unregisterBehavior

Deaktivieren Sie ein Verhalten.

ecs.unregisterBehavior(behavior: function) // -> void