AnimationPlaybackController имеет только методы resume (), pause () и stop () - PullRequest
0 голосов
/ 22 февраля 2020

AnimationPlaybackController имеет только методы resume(), pause() и stop() в RealityKit.

func move(to:relativeTo:duration:timingFunction:)

Как l oop или повторить анимацию актива ?

1 Ответ

0 голосов
/ 22 февраля 2020

Вы можете бесконечно l oop или повторять определенное количество раз анимацию актива в RealityKit, используя playAnimation(_:transitionDuration:startsPaused:) метод экземпляра (но я не вижу опций l oop при использовании методы типа move(to:relativeTo:duration:timingFunction:)):

@discardableResult 
func playAnimation(_ animation: AnimationResource, 
            transitionDuration: TimeInterval = 0, 
                  startsPaused: Bool = false) -> AnimationPlaybackController

Вот как может выглядеть бесконечная анимация l oop в реальном коде:

let animatedModel = try ModelEntity.load(named: "guitarist")

let anchor = AnchorEntity(world: [2, 0, 3])
anchor.children.append(animatedModel)
arView.scene.anchors.append(anchor)

animatedModel.playAnimation(animatedModel.availableAnimations[0].repeat(),
         transitionDuration: 0.5, 
               startsPaused: false)

Также вы можете использовать al oop определенное количество раз (например, 5):

animatedModel.playAnimation(animatedModel.availableAnimations[0].repeat(count: 5),
         transitionDuration: 1.0, 
               startsPaused: true)

Вышеупомянутый move(to:relativeTo:duration:timingFunction:) метод может использоваться следующим образом:

animatedModel.move(to: .init(1.0), 
           relativeTo: nil, 
             duration: 10, 
       timingFunction: .default).resume()      /* No loop options */
...