我有ARKit场景,我将聚光灯放在头顶以投射阴影。
因为我想在透明平面上投射阴影,所以我在聚光灯上将属性shadowMode
设置为延迟 (https://developer.apple.com/documentation/scenekit/scnshadowmode/1523758-deferred(。
这有效,但是当我再次移除聚光灯时,应用程序崩溃并显示:
[SceneKit] Error: The shadow node is not registered
[SceneKit] Error: _willExecuteDeferredShadows - no light
未设置影子模式时,应用程序不会崩溃(默认为"转发"(
如何在不崩溃的情况下取下灯?
我发现我需要在包含灯的节点上设置 node.hidden=Yes,然后再将其删除。这导致了崩溃:
if(node.light) {
node.hidden = YES;
[node removeFromParentNode];
}