Entitäten
Einführung
Eine Entität an sich hat kein Verhalten oder Aussehen; sie fungiert lediglich als Container, an den Komponenten angehängt werden können.Erstellen einer Entität
Der folgende Code zeigt, wie man eine neue Entität ohne Komponenten erstellt
Beispiel
import * as ecs from '@8thwall/ecs'
const eid = world.createEntity()
Löschung einer Entität
Der folgende Code zeigt, wie eine vorhandene Entität mit ihrer ID gelöscht werden kann:
Beispiel
import * as ecs from '@8thwall/ecs'
world.deleteEntity(eid)
Hinzufügen von Komponenten zu einer Entität
Der folgende Code zeigt, wie man einer Entität zur Laufzeit eine eingebaute Komponente hinzufügt.
Beispiel
const box = world.createEntity()
ecs.BoxGeometry.set(world, box, {
width: 1,
height: 1,
depth: 1,
})
ecs.Material.set(world, box, {
r: 255,
g: 255,
b: 255,
})
Erstellen und Ändern von Beziehungen
Der folgende Code zeigt, wie Sie integrierte Hilfsmethoden verwenden können, um Beziehungen zwischen Entitäten zu erstellen oder zu ändern.
Beispiel
// Entitäten sind automatisch ein Kind von World.
const foo = world.createEntity()
const bar = world.createEntity()
// Setzt foo als Kind von bar.
world.setParent(foo, bar)
// Ermittelt das Elternteil von bar (gibt eine eid zurück, wobei <= 0 undefiniert ist)
world.getParent(bar)
// Ermittelt die Kinder von foo (gibt einen Generator zurück)
world.getChildren(foo)
Hilfsfunktionen
Es gibt eine Reihe von Hilfsfunktionen für die Interaktion mit der Transformation einer Entität.
tipp
Entitäten werden relativ zu ihren Eltern positioniert. Die Funktion getWorldTransform()
ermittelt die Transformation des Objekts im Weltraum, wobei alle übergeordneten Transformationen berücksichtigt werden.
world.setScale(eid, 1, 1, 1)
world.setPosition(eid, 1, 1, 1)
world.setQuaternion(eid, 0, 0, 0, 1)
world.normalizeQuaternion(eid)
const tempMatrix = ecs.math.mat4.i()
world.getWorldTransform(eid1, tempMatrix)
world.setTransform(eid2, tempMatrix)