ecs
Eigenschaften
Typen
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.
Type | Description |
---|---|
ecs.eid | Entity Reference |
ecs.f32 | 32-bit floating-point number |
ecs.f64 | 64-bit floating-point number |
ecs.i32 | 32-bit integer |
ecs.ui8 | 8-bit unsigned integer |
ecs.ui32 | 32-bit unsigned integer |
ecs.string | String |
ecs.boolean | Boolean |
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
Parameter | Typ | Beschreibung |
---|---|---|
Auslöser (erforderlich) | Record<String, Trigger[]> | Bezeichnung der nächsten Zustände, in die dieser Zustand übergeht, und der Auslöser dafür. |
onEnter | Funktion | Funktion, die aufgerufen wird, bevor der Zustand betreten wird. |
onExit | Funktion | Funktion, die aufgerufen wird, bevor der Zustand betreten wird. |
Auslöser
EventTrigger
Parameter | Typ | Beschreibung |
---|---|---|
type (erforderlich) | Konstante: 'Ereignis' | Eine Konstante zur Angabe der Art des Auslösers |
event (erforderlich) | String | Der Ereignistyp, der dies auslöst |
Ziel | eid | Die Entität, für die dieser Trigger den Status ändern soll |
beforeTransition | (Ereignis) => boolesch | Eine Funktion, die vor dem Übergang ausgeführt wird. Wenn das Ergebnis wahr ist, wird der Übergang beendet und der Zustand ändert sich nicht. |
TimeoutTrigger
Parameter | Typ | Beschreibung |
---|---|---|
type (erforderlich) | Konstante: 'Zeitüberschreitung' | Eine Konstante zur Angabe der Art des Auslösers |
timeout (erforderlich) | Nummer | Die 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
Parameter | Typ | Beschreibung |
---|---|---|
Ziel | eid | die Entität, für die dieser Auslöser den Status ändern soll |
beforeTransition | (Ereignis) => boolesch | Funktion, 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