SceneKit 编辑器修改重复元素更改原始元素

Posted

技术标签:

【中文标题】SceneKit 编辑器修改重复元素更改原始元素【英文标题】:SceneKit Editor modifying duplicated element changes original element 【发布时间】:2017-12-12 08:05:47 【问题描述】:

在 SceneKit 编辑器中,如果我复制一个节点,无论是使用复制粘贴还是通过选项拖动,生成的节点都会以某种方式“链接”到原始节点。尝试以除位置以外的任何方式修改此新节点也会更改原始节点的属性。这真令人气愤,我如何从原始节点“取消链接”重复节点?

更新:根据请求,这是我描述的行为的视频:https://www.dropbox.com/s/vtcom4iejjdtjv0/SceneKit%20Weirdness.mov?dl=0

【问题讨论】:

可能是默认实例节点?你能显示适当的场景图的屏幕截图吗? 我添加了我正在谈论的视频。 在几何下的检查器中单击取消共享按钮,如果它解决了您的问题,请告诉我 是的!就是这样。将其添加为答案,我会接受。 Xcode 10.1 中的“取消共享”按钮似乎不起作用? 【参考方案1】:

通过 Apple 文档

但是,这也意味着对附加到一个节点的对象的更改将影响共享相同附件的其他节点。

https://developer.apple.com/documentation/scenekit/scnnode/1408046-clone

当你在编辑器中复制节点时,它实际上是一个克隆节点。 我不知道几何图形的默认值,但如果几何图形指定为共享,那么当您更改其中一个时,所有类似的克隆都会被更改。

在您的情况下,您只需单击“取消共享”按钮即可让克隆使用几何的不同副本。 不会受到其他节点变化的影响。

【讨论】:

以上是关于SceneKit 编辑器修改重复元素更改原始元素的主要内容,如果未能解决你的问题,请参考以下文章

中心/中间对齐元素大于容器[重复]

受原始元素上的 css 更改影响的 Jquery 可拖动助手

获取编辑器中显示的原始AngularJS“innerHTML”?

如何从 SceneKit 中的 .dae 文件访问文本元素?

如何编辑下面的 jQuery 以将悬停徽标更改返回到原始状态?

如何使用原始元素删除 ArrayList 中的重复值[重复]