[英]How can I reverse an animation in SceneKit?
我正在使用Fox 2示例來學習如何在SceneKit
使用動畫功能(您可以在以下位置找到它https://developer.apple.com/videos/play/wwdc2017/604/和此處https://developer.apple .com / library / content / samplecode / scenekit-2017 / Introduction / Intro.html ),我有一個問題:
如何反轉動畫?
我搜索了官方文檔(非常差)並在線搜索,但似乎沒有內置功能可以反轉動畫。
我發現了三個有趣的參數:
.autoreverses
:“為true時,對象在向前播放后向后播放。默認為NO” .fillsBackward
:“為true時,動畫在其有效持續時間之前處於活動狀態,並評估為其開始值。默認為NO” .fillsForward
:“為true時,動畫在其激活持續時間后仍保持激活狀態,並評估為其最終值。默認值為NO” 問題是第一個參數沒有執行我想要的操作,而當我使用其他兩個參數時,什么也沒發生:
這就是我使用這些參數的方式:
我在角色模型中加載動畫的位置
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的詳盡且更新的文檔?
由於問題得以解決,因此我不知道如何結束此問題:要反轉SceneKit中的動畫,只需將速度設置為負值(例如:-1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.