Folge-Issue aus #302 (Antwort 3 im Kommentar vom 2026-10-03): Den Render-Layer eines Objekts zur Laufzeit wechseln, so wie #211 die Kollisionsebene.
Befund
Seit #302 trägt alles, was zeichnet (Sprite, Text, Tilemap, Partikelquelle, Container), eine Zeile Render layer. Ohne eigene Wahl gilt der Layer des Parents. Eine Kamera wählt mit Sees, welche Layers sie zeigt.
Aus einem Behavior lässt sich beides nicht ändern.
Typische Fälle: Eine aufgehobene Münze fliegt aus der Welt ins HUD, ein Objekt soll kurz nur in einer Minimap-Kamera erscheinen, ein Menü blendet die Spielwelt aus.
Zu bauen (Vorschlag)
Action-Node Set render layer mit Flow, Eingang object (Vorgabe: das eigene) und dem Layer als Einstellung wie bei Set layer (#211). Zur Auswahl stehen die Render-Layers des Projekts und Inherit (zurück zum Layer des Parents).
Data-Node Render layer of: der Name des Layers, der gerade gilt (also schon geerbt), damit man verzweigen kann.
Wirkt ab dem nächsten Bild in Editor-Run und Play.
Beweis beim Schließen
Ein Sprite auf Default, eine Overlay-Kamera, die nur UI sieht: Nach Set render layer auf UI zeigt sie das Sprite, die Hauptkamera (sieht nur Default) nicht mehr. Nach Inherit ist es wieder umgekehrt.
Ein Container, der auf UI wechselt, nimmt seine Kinder ohne eigene Wahl mit.
Offen (mit Vorschlag)
Sees an der Kamera zur Laufzeit ändern (Node Set sees, Häkchen wie bei Set collides with)? Vorschlag: im selben Issue mitnehmen, die Arbeit ist dieselbe.
Layer als Einstellung oder als Text-Eingang? Vorschlag: Einstellung, aus demselben Grund wie bei #211. Ein Text-Eingang wäre nach dem Umbenennen still falsch.
Folge-Issue aus #302 (Antwort 3 im Kommentar vom 2026-10-03): Den Render-Layer eines Objekts zur Laufzeit wechseln, so wie #211 die Kollisionsebene.
## Befund
- Seit #302 trägt alles, was zeichnet (Sprite, Text, Tilemap, Partikelquelle, Container), eine Zeile `Render layer`. Ohne eigene Wahl gilt der Layer des Parents. Eine Kamera wählt mit `Sees`, welche Layers sie zeigt.
- Aus einem Behavior lässt sich beides nicht ändern.
- Typische Fälle: Eine aufgehobene Münze fliegt aus der Welt ins HUD, ein Objekt soll kurz nur in einer Minimap-Kamera erscheinen, ein Menü blendet die Spielwelt aus.
## Zu bauen (Vorschlag)
- Action-Node **Set render layer** mit Flow, Eingang `object` (Vorgabe: das eigene) und dem Layer als Einstellung wie bei `Set layer` (#211). Zur Auswahl stehen die Render-Layers des Projekts und `Inherit` (zurück zum Layer des Parents).
- Data-Node **Render layer of**: der Name des Layers, der gerade gilt (also schon geerbt), damit man verzweigen kann.
- Wirkt ab dem nächsten Bild in Editor-Run und Play.
## Beweis beim Schließen
- Ein Sprite auf `Default`, eine Overlay-Kamera, die nur `UI` sieht: Nach `Set render layer` auf `UI` zeigt sie das Sprite, die Hauptkamera (sieht nur `Default`) nicht mehr. Nach `Inherit` ist es wieder umgekehrt.
- Ein Container, der auf `UI` wechselt, nimmt seine Kinder ohne eigene Wahl mit.
## Offen (mit Vorschlag)
1. **`Sees` an der Kamera zur Laufzeit ändern** (Node `Set sees`, Häkchen wie bei `Set collides with`)? Vorschlag: im selben Issue mitnehmen, die Arbeit ist dieselbe.
2. **Layer als Einstellung oder als Text-Eingang?** Vorschlag: Einstellung, aus demselben Grund wie bei #211. Ein Text-Eingang wäre nach dem Umbenennen still falsch.
admin
added this to the Development project 2026-10-03 15:21:55 +02:00
Eine Sonde vor dem Bauen hat gezeigt: Schreiben geht schon.
Ein Properties-Node vom Typ des Objekts (Sprite, Text, Container, …) mit Render layer auf Set setzt den Layer zur Laufzeit. -1 ist Inherit.
Ein Properties-Node vom Typ Camera mit Sees auf Set ändert, was die Kamera zeigt.
Das Bild folgt ab dem nächsten Frame, in Editor-Run und Play. Gezeichnet wird mit den Props, die jedes Bild neu gelesen werden.
Nach Rückfrage gebaut ist deshalb nur Render layer of. Set render layer und Set sees gibt es nicht als eigene Nodes, das Schreiben bleibt bei Properties.
Render layer of
Data-Node, Eingang object, Ausgänge name und number.
Er nennt den Layer, der gerade gilt. Ohne eigene Wahl ist das der des Parents, ganz oben Default. Es ist dieselbe Regel wie beim Zeichnen (renderLayerAlong).
Selbst entschieden: Für ein Objekt, das nicht gezeichnet wird (Kamera, Behavior, Collider), ist der Name leer und die Nummer -1, so wie bei Layer of ohne Collider.
Beweis aus dem Issue (Unit-Tests in tests/viewport/render-layers.test.ts)
Ein Sprite auf Default, eine Hauptkamera, die nur Default sieht, und eine Overlay-Kamera, die nur UI sieht:
Nach Set auf UI zeigt nur noch das Overlay das Sprite, nach Inherit wieder nur die Hauptkamera.
Ein Container, der auf UI wechselt, nimmt sein Sprite ohne eigene Wahl mit.
Setzt ein Graph Sees der Hauptkamera auf beide Layers, zeigt sie wieder beide Sprites.
Render layer of nennt am Sprite im Container Default/0, nach dem Wechsel des Containers UI/1, und am Behavior ''/-1.
Im Browser (e2e 63c3): Ein Graph setzt das rote Quadrat beim Start auf UI. Die Hauptkamera zeichnet es nicht mehr, und das Log zeigt UI und 1.
Drei Gegenproben greifen: Ohne Erben im Node, ohne die Prüfung „wird gezeichnet“ und ohne Erben beim Zeichnen fallen 1, 1 und 2 Tests.
„layer of“ in der Palette findet weiter zuerst Layer of (6z-x grün).
Eine Gegenprobe im Browser habe ich nicht gefahren.
Doku
Wiki Concepts (Abschnitt Render layers): wie ein Graph Layer und Sees ändert, und Render layer of.
Wiki Behaviors: Render layer of in der Liste der Data-Nodes.
Development und README: e2e-Summe 1731.
Erledigt mit d9c6bbf, Doku im Wiki (6fec7ee).
## Befund war überholt, wie bei #211
Eine Sonde vor dem Bauen hat gezeigt: Schreiben geht schon.
- Ein `Properties`-Node vom Typ des Objekts (Sprite, Text, Container, …) mit **Render layer** auf *Set* setzt den Layer zur Laufzeit. `-1` ist *Inherit*.
- Ein `Properties`-Node vom Typ *Camera* mit **Sees** auf *Set* ändert, was die Kamera zeigt.
- Das Bild folgt ab dem nächsten Frame, in Editor-Run und Play. Gezeichnet wird mit den Props, die jedes Bild neu gelesen werden.
Nach Rückfrage gebaut ist deshalb nur **Render layer of**. `Set render layer` und `Set sees` gibt es nicht als eigene Nodes, das Schreiben bleibt bei `Properties`.
## Render layer of
- Data-Node, Eingang `object`, Ausgänge `name` und `number`.
- Er nennt den Layer, der gerade gilt. Ohne eigene Wahl ist das der des Parents, ganz oben `Default`. Es ist dieselbe Regel wie beim Zeichnen (`renderLayerAlong`).
- **Selbst entschieden:** Für ein Objekt, das nicht gezeichnet wird (Kamera, Behavior, Collider), ist der Name leer und die Nummer `-1`, so wie bei `Layer of` ohne Collider.
## Beweis aus dem Issue (Unit-Tests in `tests/viewport/render-layers.test.ts`)
Ein Sprite auf `Default`, eine Hauptkamera, die nur `Default` sieht, und eine Overlay-Kamera, die nur `UI` sieht:
- Nach *Set* auf `UI` zeigt nur noch das Overlay das Sprite, nach *Inherit* wieder nur die Hauptkamera.
- Ein Container, der auf `UI` wechselt, nimmt sein Sprite ohne eigene Wahl mit.
- Setzt ein Graph `Sees` der Hauptkamera auf beide Layers, zeigt sie wieder beide Sprites.
- `Render layer of` nennt am Sprite im Container `Default`/`0`, nach dem Wechsel des Containers `UI`/`1`, und am Behavior `''`/`-1`.
Im Browser (e2e **63c3**): Ein Graph setzt das rote Quadrat beim Start auf `UI`. Die Hauptkamera zeichnet es nicht mehr, und das Log zeigt `UI` und `1`.
## Tests
```
Gate → 231 Files, 3534 Tests, CHECK EXIT 0 (+8)
e2e 6 → ALL PASSED – 149 checks
e2e 63 → ALL PASSED – 13 checks (+1, Summe 1731)
```
- Drei Gegenproben greifen: Ohne Erben im Node, ohne die Prüfung „wird gezeichnet“ und ohne Erben beim Zeichnen fallen 1, 1 und 2 Tests.
- „layer of“ in der Palette findet weiter zuerst `Layer of` (6z-x grün).
- Eine Gegenprobe im Browser habe ich nicht gefahren.
## Doku
- Wiki *Concepts* (Abschnitt Render layers): wie ein Graph Layer und `Sees` ändert, und `Render layer of`.
- Wiki *Behaviors*: `Render layer of` in der Liste der Data-Nodes.
- *Development* und README: e2e-Summe 1731.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Folge-Issue aus #302 (Antwort 3 im Kommentar vom 2026-10-03): Den Render-Layer eines Objekts zur Laufzeit wechseln, so wie #211 die Kollisionsebene.
Befund
Render layer. Ohne eigene Wahl gilt der Layer des Parents. Eine Kamera wählt mitSees, welche Layers sie zeigt.Zu bauen (Vorschlag)
object(Vorgabe: das eigene) und dem Layer als Einstellung wie beiSet layer(#211). Zur Auswahl stehen die Render-Layers des Projekts undInherit(zurück zum Layer des Parents).Beweis beim Schließen
Default, eine Overlay-Kamera, die nurUIsieht: NachSet render layeraufUIzeigt sie das Sprite, die Hauptkamera (sieht nurDefault) nicht mehr. NachInheritist es wieder umgekehrt.UIwechselt, nimmt seine Kinder ohne eigene Wahl mit.Offen (mit Vorschlag)
Seesan der Kamera zur Laufzeit ändern (NodeSet sees, Häkchen wie beiSet collides with)? Vorschlag: im selben Issue mitnehmen, die Arbeit ist dieselbe.vorschläge passen
Erledigt mit
d9c6bbf, Doku im Wiki (6fec7ee).Befund war überholt, wie bei #211
Eine Sonde vor dem Bauen hat gezeigt: Schreiben geht schon.
Properties-Node vom Typ des Objekts (Sprite, Text, Container, …) mit Render layer auf Set setzt den Layer zur Laufzeit.-1ist Inherit.Properties-Node vom Typ Camera mit Sees auf Set ändert, was die Kamera zeigt.Nach Rückfrage gebaut ist deshalb nur Render layer of.
Set render layerundSet seesgibt es nicht als eigene Nodes, das Schreiben bleibt beiProperties.Render layer of
object, Ausgängenameundnumber.Default. Es ist dieselbe Regel wie beim Zeichnen (renderLayerAlong).-1, so wie beiLayer ofohne Collider.Beweis aus dem Issue (Unit-Tests in
tests/viewport/render-layers.test.ts)Ein Sprite auf
Default, eine Hauptkamera, die nurDefaultsieht, und eine Overlay-Kamera, die nurUIsieht:UIzeigt nur noch das Overlay das Sprite, nach Inherit wieder nur die Hauptkamera.UIwechselt, nimmt sein Sprite ohne eigene Wahl mit.Seesder Hauptkamera auf beide Layers, zeigt sie wieder beide Sprites.Render layer ofnennt am Sprite im ContainerDefault/0, nach dem Wechsel des ContainersUI/1, und am Behavior''/-1.Im Browser (e2e 63c3): Ein Graph setzt das rote Quadrat beim Start auf
UI. Die Hauptkamera zeichnet es nicht mehr, und das Log zeigtUIund1.Tests
Layer of(6z-x grün).Doku
Seesändert, undRender layer of.Render layer ofin der Liste der Data-Nodes.