如何在 Scenekit/ARKit 中使用阴影模式=延迟移除光源



我有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];
}

最新更新