在ARkit SCNODE - SWIFT中的3dObject上重复X轴上的纹理

时间:2018-02-01 05:28:41

标签: ios swift arkit

我想在我当前场景中的SCNode上移动纹理。

我目前正在为节点制作动画,但我希望纹理在对象上运行而不是为其设置动画。

let moveup = SCNAction.moveBy(x: 0.01, y: 0, z: 0, duration: 1)
moveup.timingMode = .easeInEaseOut
moveup.speed = CGFloat(20.5)
let moveDown = SCNAction.moveBy(x: -0.01, y: 0, z: 0, duration: 1)
moveDown.timingMode = .easeInEaseOut;
moveDown.speed = CGFloat(20.5)
let moveupSequence = SCNAction.sequence([moveup, moveDown])
print(moveupSequence.duration, moveupSequence.speed)
WaterNode?.runAction(moveupSequence)

这是我用来制作对象的代码。我需要知道如何访问纹理并将它们移动到X轴。

1 个答案:

答案 0 :(得分:0)

材质有contentsTransform属性

let action = SCNAction.customAction(duration: 1) { (node, elapsedTime) in
    let c = node.geometry?.materials.first?.diffuse.contentsTransform
    node.geometry?.materials.first?.diffuse.contentsTransform = SCNMatrix4MakeTranslation((c?.m41)! + 0.01, (c?.m42)!, (c?.m43)!)
}