2017-11-13 3 views
1

Ich habe ARKit-Szene, wo ich einen Strahler Overhead platzieren, um Schatten zu werfen.Wie entferne ich ein Licht mit shadowMode = in Scenekit/ARKit?

Da ich Schatten auf einer transparenten Ebene werfen möchte, setze ich die Eigenschaft shadowMode auf deferred (https://developer.apple.com/documentation/scenekit/scnshadowmode/1523758-deferred) im Rampenlicht.

Dies funktioniert, aber wenn ich den Scheinwerfer wieder entfernen, werden die App stürzt mit:

[SceneKit] Error: The shadow node is not registered
[SceneKit] Error: _willExecuteDeferredShadows - no light

Die App nicht abstürzt, wenn Shadow nicht gesetzt ist (Standard: „Vorwärts“)

Wie kann ich das Licht ohne Absturz entfernen?

+0

Es ist schwer, ohne diesen Teil Ihres Codes zu helfen, aber es sieht so aus, als ob Sie die Eigenschaft von Schatten festlegen, bevor Sie es deklarieren. – Zydnar

Antwort

1

Ich fand heraus, dass ich node.hidden = Yes auf dem Knoten, der das Licht enthält, vor dem Entfernen setzen muss. Dadurch wird der Absturz vermieden:

Verwandte Themen