ios - 在 ARkit SCNNODE 中的 3D 对象上重复 X 轴纹理 - SWIFT

标签 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 轴。

最佳答案

contentsTransform Material 特性

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)!)
}

关于ios - 在 ARkit SCNNODE 中的 3D 对象上重复 X 轴纹理 - SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48555920/

相关文章:

ios - 无法从 UITabViewController 中的 VC 中呈现 View Controller

快速声明并且数组包含字典

ios - 删除单击任何其他字段或任何地方时的清除按钮

swift - 弹出窗口中没有摘要信息 -- Option-Click

ios - Swift 4 从 UITableView 执行 segue 并传递数据

objective-c - 使用 CGContext 绘制后删除

ios7导航栏: 3 strange dots appearing when back animation with custom button

ios - 如何在 Swift 中垂直(沿 y 轴)缩放 3D 对象?

ios - ARKit 中访问节点名称

swift - 为 ARKit(不是 QLPreview)加载 USDZ Material 属性