如何移动从 Blender 导入的节点
How to move a node imported from Blender
我正在尝试在 Scene Kit 中移动动画 3D 模型(来自 Blender)。
我可以用这段代码旋转我的模型:
let ship = scene.rootNode.childNode(withName: "ship", recursively: true)!
ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))
但是这段代码并没有移动它:
ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(moveForward))
此外,我无法在 .scn 文件中拖动我的模型(与我的其他非动画模型不同)。我的动画模型似乎有额外的属性:
screenshot.
如何在 space 中移动我的动画模型?
只要您的模型正确加载到节点中,只需移动节点(或像您那样旋转它),它的行为就像其他节点一样。
moveForward 的 runAction.repeat 将重复相同的移动 - 比如说 SCNVector3(5, 0, 0) - 但每次都是一样的,所以一旦到达那里,它就不会再移动了.一些选项是循环它并调用 runAction moveTo 并每次递增你的 moveForward 向量,或者使用物理引擎并添加速度等。
我正在尝试在 Scene Kit 中移动动画 3D 模型(来自 Blender)。
我可以用这段代码旋转我的模型:
let ship = scene.rootNode.childNode(withName: "ship", recursively: true)!
ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))
但是这段代码并没有移动它:
ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(moveForward))
此外,我无法在 .scn 文件中拖动我的模型(与我的其他非动画模型不同)。我的动画模型似乎有额外的属性: screenshot. 如何在 space 中移动我的动画模型?
只要您的模型正确加载到节点中,只需移动节点(或像您那样旋转它),它的行为就像其他节点一样。
moveForward 的 runAction.repeat 将重复相同的移动 - 比如说 SCNVector3(5, 0, 0) - 但每次都是一样的,所以一旦到达那里,它就不会再移动了.一些选项是循环它并调用 runAction moveTo 并每次递增你的 moveForward 向量,或者使用物理引擎并添加速度等。