gpt4 book ai didi

ios - SCNNode 不在 SCNView 层次结构中,仍然显示并获取触摸和物理

转载 作者:行者123 更新时间:2023-11-29 05:31:22 25 4
gpt4 key购买 nike

这是一个明显的 SceneKit 错误,我花了一段时间才弄清楚,而且我在网上找不到任何解决方案。

在 SCNNode removeFromParentNode() 之后,将其从 SCNView 的 scene.rootNode 层次结构中删除(我检查了它以验证它没有隐藏在某处)SceneKit 仍在渲染它,与其进行物理接触(使用 nil SCNPhysicsContact.nodeB ),并在 UIGestureRecognizer HitTest 结果中返回它。枚举时没有发生突变,但节点层次结构显然已陷入不一致的状态。

最佳答案

只有当节点在创建后立即被删除时才会发生这种情况(因为它超出了范围)。在删除过程中添加短暂的延迟可以解决此问题:

DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).asyncAfter(deadline: .now() + 0.1) {
emojiNode.removeFromParentNode()
}

我猜测 SCNView 将其使用的节点独立存储到其 rootNode 层次结构中的节点,可能这样它就可以以更快的方式组织它们,并在添加它们时更新它的单独列表/从真品中删除。可能是由于我在物理、文本节点或其他方面所做的一些不寻常的事情引起的一些边缘情况,加上在添加节点后如此快速地删除节点,可能会使单独的列表与实际节点层次结构中的节点不一致。

关于ios - SCNNode 不在 SCNView 层次结构中,仍然显示并获取触摸和物理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57516282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com