我正在学习如何使用Fox 2示例在SceneKit
中使用动画功能(您可以在https://developer.apple.com/videos/play/wwdc2017/604/和https://developer.apple.com/library/content/samplecode/scenekit-2017/Introduction/Intro.html找到它),我有一个问题:< / p>
如何撤消动画?
我在官方文档(非常非常差)和在线搜索,但似乎没有可以反转动画的内置函数。
我发现了三个有趣的参数:
.autoreverses
:“当为真时,对象在向前播放后向后播放。默认为否”.fillsBackward
:“当为true时,动画在其活动持续时间之前处于活动状态并计算为其起始值。默认为NO”.fillsForward
:“当为true时,动画在其活动持续时间后仍保持活动状态并计算结束值。默认为NO”问题是第一个参数没有达到我想要的效果,当我使用其他两个参数时,没有任何反应:S
这是我使用这些参数的方式:
我在角色模型中加载动画
let spinAnimation = Character.loadAnimation(fromSceneNamed: "Art.scnassets/character/max_spin.scn")
spinAnimation.animation.isRemovedOnCompletion = false
spinAnimation.speed = 1.5
spinAnimation.stop()
model!.addAnimationPlayer(spinAnimation, forKey: "spin")
我在哪里创建角色并开始动画
character2 = Character.init(scene: scnScene!)
character2?.model.position = SCNVector3(x: 0.15, y: -0.3, z: 0)
scnScene!.rootNode.addChildNode(character2!.node!)
character2?.model.animationPlayer(forKey: "spin")?.animation.fillsForward = true //or fillsBackward or autoreverses
character2?.model.animationPlayer(forKey: "spin")?.play()
我误解了.fillsBackward
和.fillsForward
吗?是否有关于SceneKit的详尽且更新的文档?
答案 0 :(得分:0)
我不知道如何解决这个问题,因为问题解决了,所以: 要在SceneKit中反转动画,只需将速度设置为负值(例如:-1)