Моя анимационная модель имеет общий временной интервал 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")
}
}