Skip to content

Commit

Permalink
[unity] Fixed Timeline not pausing/resuming clip playback on Playable…
Browse files Browse the repository at this point in the history
…Director.pause. Closes #1920.
  • Loading branch information
HaraldCsaszar committed Jul 6, 2021
1 parent 20aebce commit 6d9e3e7
Showing 1 changed file with 38 additions and 1 deletion.
Expand Up @@ -40,12 +40,49 @@ public class SpineAnimationStateMixerBehaviour : PlayableBehaviour {
float[] lastInputWeights;
public int trackIndex;

IAnimationStateComponent animationStateComponent;
bool isPaused = false;
TrackEntry pausedTrackEntry;
float previousTimeScale = 1;

public override void OnBehaviourPause (Playable playable, FrameData info) {
if (!isPaused)
HandlePause(playable);
isPaused = true;
}

public override void OnBehaviourPlay (Playable playable, FrameData info) {
if (isPaused)
HandleResume(playable);
isPaused = false;
}

protected void HandlePause (Playable playable) {
if (animationStateComponent == null) return;

TrackEntry current = animationStateComponent.AnimationState.GetCurrent(trackIndex);
if (current != null) {
previousTimeScale = current.TimeScale;
current.TimeScale = 0;
pausedTrackEntry = current;
}
}

protected void HandleResume (Playable playable) {
if (animationStateComponent == null) return;

TrackEntry current = animationStateComponent.AnimationState.GetCurrent(trackIndex);
if (current != null && current == pausedTrackEntry) {
current.TimeScale = previousTimeScale;
}
}

// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties.
public override void ProcessFrame (Playable playable, FrameData info, object playerData) {

var skeletonAnimation = playerData as SkeletonAnimation;
var skeletonGraphic = playerData as SkeletonGraphic;
var animationStateComponent = playerData as IAnimationStateComponent;
animationStateComponent = playerData as IAnimationStateComponent;
var skeletonComponent = playerData as ISkeletonComponent;
if (animationStateComponent == null || skeletonComponent == null) return;

Expand Down

0 comments on commit 6d9e3e7

Please sign in to comment.