public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount) { ScriptPlayable <SpineAnimatorChannelTrackMixer> playable = TimelineUtils.CreateTrackMixer <SpineAnimatorChannelTrackMixer>(this, graph, go, inputCount); SpineAnimatorTrack parentTrack = this.parent as SpineAnimatorTrack; if (parentTrack != null) { SpineAnimatorTrackMixer parentMixer = TimelineUtils.GetTrackMixer <SpineAnimatorTrackMixer>(graph, parentTrack); if (parentMixer != null) { SpineAnimatorChannelTrackMixer mixer = playable.GetBehaviour(); mixer.Init(parentMixer); IEnumerable <TimelineClip> clips = GetClips(); foreach (TimelineClip clip in clips) { SpineAnimationClipAsset animationClip = clip.asset as SpineAnimationClipAsset; if (animationClip != null) { clip.displayName = animationClip._animationId; animationClip.SetParentTrack(parentTrack); } } } } return(playable); }
private SkeletonAnimation GetClipBoundAnimator() { PlayableDirector selectedDirector = TimelineEditor.inspectedDirector; SpineAnimationClipAsset clip = base.target as SpineAnimationClipAsset; if (selectedDirector != null && clip != null) { return(selectedDirector.GetGenericBinding(clip.GetParentTrack()) as SkeletonAnimation); } return(null); }
protected override void OnCreateClip(TimelineClip clip) { SpineAnimatorTrack parentTrack = this.parent as SpineAnimatorTrack; if (parentTrack != null) { SpineAnimationClipAsset animationClip = clip.asset as SpineAnimationClipAsset; if (animationClip != null) { animationClip.SetParentTrack(parentTrack); } } }