1、SCNScene的内容可以表现为动画。动画可以合并,如果想一个节点应用了一个动画,则所有的子节点将一起变化。
下面添加一个上下移动的动画
// 为场景中的内容实现动画
let moveUpAndDownAnimation = CABasicAnimation(keyPath: "position")
moveUpAndDownAnimation.byValue = NSValue(SCNVector3:SCNVector3(0,5,0))
// 在最后加速和减速,而不是机械弹跳
moveUpAndDownAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaSEOut)
// 在末端自动返回
moveUpAndDownAnimation.autoreverses = true
// 动画无限次循环
moveUpAndDownAnimation.repeatCount = Float.infinity
moveUpAndDownAnimation.duration = 2
// 添加到一个节点
capsuleNodeOne.addAnimation(moveUpAndDownAnimation,forKey: "upAndDown")
2、创建文本几何体
// 创建文本几何体
let text3D = SCNText(string: "BlaBlaBla",extrusionDepth: 0.3)
text3D.font = UIFont.systemFontOfSize(2)
let textNode = SCNNode(geometry: text3D)
textNode.position = SCNVector3(-5,6,0)
capsuleNodeOne.addChildNode(textNode)
将文字添加成为胶囊节点的子节点,字体会跟着胶囊移动。 当一个节点是另一个节点的子节点时,它会继承父节点的所有动画。我们也可以向子节点添加动画,但是这些动画不会影响父节点。