gpt4 book ai didi

swift - 从 SceneKit 中删除所有几何体,或动态修改它

转载 作者:行者123 更新时间:2023-11-30 10:02:49 24 4
gpt4 key购买 nike

我有一个简单的 SceneKit View ,用于显示天线设计,例如电视天线,或者这个不太常见的示例,双二阶天线。

enter image description here

这些设计由许多旋转和定位的SKCylinders组成。

与该 View 连接的是一个 NSTableView,它列出了圆柱体的端点并允许用户编辑它们。当他们退出编辑器时,3D View 会更新。

问题是我当前的代码每次重绘时总是添加新的SKCylinders到 View 中。因此,当他们进行编辑时,SKCylinders 的多个副本最终会出现在 View 中。我正在查看文档,试图找出解决此问题的最佳方法。

1)我是否应该在每次绘制之前简单地删除所有几何节点,然后使其保持新鲜?有没有一种简单的方法可以找到所有几何节点,而不是相机或灯光(或其他)?

2) 有什么方法可以识别集合中的节点,这样我就可以说,由于几何图形的第 5 行发生了变化,我需要调整 node-with-something=5?我虽然想使用 name 但我没有找到按名称查找节点的方法

3) (2) 不是一个完整的解决方案,因为我允许在列表中插入和删除,所以它可能是“此更改后的所有内容”。这会让我想到(1)还是这里有更好的解决方案?

感谢您的建议!

最佳答案

我还没有使用过 SceneKit,但是从文档来看,您似乎可以通过调用以下命令按名称查找节点:

SCNScene.rootNode.childNodeWithName( name, recursively: true) 

或者自己递归地迭代子节点。

根据节点层次结构的复杂性,实现插入和删除可能很棘手,但是,一旦找到要查找的节点,这只是管道(修剪和移植树操作等)。

关于swift - 从 SceneKit 中删除所有几何体,或动态修改它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37509869/

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