我的动画模型的总时间间隔为 45 秒。我点击模型,应该不能从一开始就播放它,而是从第 15 秒开始播放。
如果您认为这是可能的,任何人都可以帮助我吗?
编辑:
一旦我加载我的动画模型,SceneKit 就会播放动画。现在有了钥匙,我在遇到的自定义方法的帮助下裁剪了动画。
通过点击模型,我枚举所有父/子节点以停止或从场景中删除动画。到目前为止,一切都很好。
当我尝试将裁剪的动画添加回场景时出现问题。什么都没有发生,因为场景保持空闲,没有任何动作。
我在这里做错了吗?
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touchLocation = touches.first!.location(in: sceneView)
// Let's test if a 3D Object was touch
var hitTestOptions = [SCNHitTestOption: Any]()
hitTestOptions[SCNHitTestOption.boundingBoxOnly] = true
let hitResults: [SCNHitTestResult] = sceneView.hitTest(touchLocation, options: hitTestOptions)
let animation = animScene?.entryWithIdentifier("myKey", withClass: CAAnimation.self)
print(" duration is...", animation!.duration)
let animationNew = subAnimation(of:(animation)!, startFrame: 10, endFrame: 360)
print("New duration is...", animationNew.duration)
sceneView.scene.rootNode.enumerateChildNodes { (node, stop) in
node.removeAllAnimations()
}
sceneView.scene.rootNode.enumerateChildNodes { (node, _) in
node.addAnimation(animationNew, forKey: "myKey")
}
}