在scenekit中旋转与主旋转轴不对齐的子节点。

时间:2018-02-22 04:59:13

标签: swift scenekit scnnode

我不确定描述此问题的正确术语所以我发布了两张图片来说明问题所在。

使用在SketchUp等第三方软件包中创建的3D模型时,可能会遇到未与父节点轴对齐的分组几何(子节点)。下图显示了具有4个轮子的Da Vinci木制里程表模型的俯视图(2个用于移动推车的轮子和用于测量行进距离的另外2个轮子)。

此型号中的3个车轮未与任何根节点3轴对齐。所以当你做一个像说

的轮换时
 let rotateAction = SCNAction.rotate(by: 20, around: SCNVector3(1,0,0), duration: 10)

 let rotateForever = SCNAction.repeatForever(rotateAction)

 wheelNode?.runAction(rotateForever)

车轮不会在其中心旋转(即使wheelNodes枢轴位于车轮几何中心),因为车轮方向未对齐x轴。

enter image description here

我知道一种让它工作的方法......你可以手动旋转几何体,这样所有4个轮子现在至少与主轴对齐。

enter image description here

但有没有办法用swift来做到这一点。

  1. 检测到与主轴不对齐的子节点 旋转说x轴.....并在运行时重新对齐子节点或整个模型,使其与主轴对齐。
  2. 是否可以使用wheelNode.rotateBy来做这种事情?

    任何帮助都将不胜感激。

0 个答案:

没有答案