diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
| commit | c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch) | |
| tree | ee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Animation/AnimationPreviewUpdateCallback.cs | |
| download | Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2 Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip | |
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Animation/AnimationPreviewUpdateCallback.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Animation/AnimationPreviewUpdateCallback.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Animation/AnimationPreviewUpdateCallback.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Animation/AnimationPreviewUpdateCallback.cs new file mode 100644 index 0000000..560f900 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Animation/AnimationPreviewUpdateCallback.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; +using UnityEngine.Animations; +using UnityEngine.Experimental.Animations; +using UnityEngine.Playables; + +namespace UnityEngine.Timeline +{ + class AnimationPreviewUpdateCallback : ITimelineEvaluateCallback + { + AnimationPlayableOutput m_Output; + PlayableGraph m_Graph; + List<IAnimationWindowPreview> m_PreviewComponents; + + public AnimationPreviewUpdateCallback(AnimationPlayableOutput output) + { + m_Output = output; + + Playable playable = m_Output.GetSourcePlayable(); + if (playable.IsValid()) + { + m_Graph = playable.GetGraph(); + } + } + + public void Evaluate() + { + if (!m_Graph.IsValid()) + return; + + if (m_PreviewComponents == null) + FetchPreviewComponents(); + + foreach (var component in m_PreviewComponents) + { + if (component != null) + { + component.UpdatePreviewGraph(m_Graph); + } + } + } + + private void FetchPreviewComponents() + { + m_PreviewComponents = new List<IAnimationWindowPreview>(); + + var animator = m_Output.GetTarget(); + if (animator == null) + return; + + var gameObject = animator.gameObject; + m_PreviewComponents.AddRange(gameObject.GetComponents<IAnimationWindowPreview>()); + } + } +} |
