【问题标题】:SceneKit positioning of the nodeSceneKit 定位节点
【发布时间】:2017-02-07 00:51:08
【问题描述】:

我有两个 SCNNode,它们的几何类型设置为 SCNBox。

let node1 = SCNNode(geometry: SCNBox(width: 10.0, height: 10.0, length: 10.0, chamferRadius: 0.0))
let node2 = SCNNode(geometry: SCNBox(width: 20.0, height: 10.0, length: 10.0, chamferRadius: 0.0))

node1.position.x = 0.0
node2.position.x = 10.0

scene.rootNode.addChildNode(node1)
scene.rootNode.addChildNode(node2)

当我查看场景时,节点会重叠,但它们不应该重叠,还是应该重叠?我不会同时操作相机。目前我没有设置任何物理场。

当我打印以下内容时:

node1.presentationNode.position.x
node2.presentationNode.position.x

(node1.geometry as! SCNBox).width
(node2.geometry as! SCNBox).width

然后打印的值与最初设置的值相同。 节点的锚点默认是左下角吗? 奇怪的是,当我在 touchesBegan/touchesEnded 中移动节点并将其定位在同一位置时,节点不会重叠。 如何正确放置 SceneKit 的节点?

【问题讨论】:

  • 当您看到分离的差异时发生了什么?操作相机时会发生这种情况吗?
  • 请看看我的编辑。在上面的示例代码中,节点总是重叠的。但是,当我在 touchesBegan 中移动节点并将其放置在完全相同的位置时,它们不会重叠。

标签: swift swift2 scenekit


【解决方案1】:

感谢您的帮助。 我找到了解决方案。 节点的定位基于节点宽度中间的锚点。

【讨论】:

  • 请将您的答案标记为已接受,以便问题显示为已关闭/已回答。
【解决方案2】:

我相信你把你的轴搞混了。 node2 的宽度为 20,但您仅将 node1(宽度为 10)移动 10。尝试将其移动 20(或 23 用于小间隙)。

【讨论】:

  • 我将 node2 移动 10 并且 node1 的宽度=10。
猜你喜欢
  • 2020-02-22
  • 2017-12-03
  • 2018-11-01
  • 2014-11-24
  • 1970-01-01
  • 2018-02-07
  • 2022-07-07
  • 2021-05-19
  • 2021-10-11
相关资源
最近更新 更多