Ios 如何在Scenekit/ARKit中移除阴影模式=延迟的灯光?

Ios 如何在Scenekit/ARKit中移除阴影模式=延迟的灯光?,ios,scenekit,arkit,Ios,Scenekit,Arkit,我有一个ARKit场景,我把聚光灯放在头顶上投射阴影 因为我想在透明平面上投射阴影,所以我将聚光灯上的属性shadowMode设置为deferred() 这是可行的,但当我再次移除聚光灯时,应用程序会崩溃: [SceneKit]错误:未注册卷影节点 [SceneKit]错误:\u将执行错误阴影-无灯光 未设置阴影模式时,应用程序不会崩溃(默认为“前进”) 如何在不崩溃的情况下移除灯光?我发现在移除灯光之前,需要在包含灯光的节点上设置node.hidden=Yes。这就避免了崩溃: if(node

我有一个ARKit场景,我把聚光灯放在头顶上投射阴影

因为我想在透明平面上投射阴影,所以我将聚光灯上的属性
shadowMode
设置为deferred()

这是可行的,但当我再次移除聚光灯时,应用程序会崩溃:

[SceneKit]错误:未注册卷影节点

[SceneKit]错误:\u将执行错误阴影-无灯光

未设置阴影模式时,应用程序不会崩溃(默认为“前进”)


如何在不崩溃的情况下移除灯光?

我发现在移除灯光之前,需要在包含灯光的节点上设置node.hidden=Yes。这就避免了崩溃:

if(node.light) {
  node.hidden = YES;
  [node removeFromParentNode];
}

没有代码的这一部分很难帮助您,但看起来您在声明之前设置了shadow的属性。