gpt4 book ai didi

SceneKit:将节点与模型对象关联

转载 作者:行者123 更新时间:2023-12-02 22:08:54 25 4
gpt4 key购买 nike

我需要将 SceneKit Node 对象与程序中的任意对象关联起来,并正在寻找最佳解决方案。

下面是我的意思的一个例子:假设我有一个程序,可以使用 SceneKit 渲染分子中的原子。我有类 MoleculeAtom 来对我的数据进行建模。然后我使用 SceneKit 渲染分子。当我单击场景 View 中的球体节点时,我需要知道该球体代表哪个 Atom 对象(Molecule 包含一个 Atoms 数组) >)

我可以创建一个将 Node 映射到 Atom 对象的字典,但想知道是否有办法将 Atom 对象引用添加到球体节点。应该使用键值绑定(bind)吗?

我对 Cocoa 编程非常陌生,正在寻找正确方向的插入方法。然后我可以研究实现细节。

最佳答案

从几个不同的 SCNNode 子类开始怎么样?第一个用于原子,第二个用于分子。每个 MoleculeNode 都有一个或多个 AtomNode 作为子节点。 AtomNode 和 MoleculeNode 对它们所代表的 Atom 或 Molecule 有弱引用。

现在您可以轻松移动或旋转 MoleculeNode,所有 AtomNode 都会随之移动。每个 AtomNode 的几何形状将相对于父 MoleculeNode 保持固定。

HitTest 将返回 AtomNode 和 MoleculeNode。如果需要,您可以通过节点的类或通过将节点的名称设置为“原子”或“分子”来过滤该结果。如果您想对所需的点击精度宽松一些,则 SCNHitTestBoundingBoxOnlyKey 可能会很有用。

关于SceneKit:将节点与模型对象关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34548266/

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