private void Start()
        {
            mixers = new List <AnimationLayerMixerPlayable>();
            for (var i = 0; i < dir.playableGraph.GetOutputCount(); i++)
            {
                var p = dir.playableGraph.GetRootPlayable(i);
                if (!p.IsValid())
                {
                    continue;
                }
                Debug.Log(p.GetPlayableType());
                Debug.Log("OUTPUT: " + i + " = " + p.GetPlayableType() + ", outputs: " + p.GetOutputCount() + ", inputs: " + p.GetInputCount());
                Traverse(p, mixers);
            }

            var arr = dir.playableAsset.outputs.ToArray();

            for (var i = 0; i < arr.Length; i++)
            {
                var entry = arr[i];

                if (entry.outputTargetType == typeof(Animator))
                {
                    var binding = dir.GetGenericBinding(entry.sourceObject);
                    var b2      = dir.GetReferenceValue(new PropertyName(entry.streamName), out var valid);
                    Debug.Log("BINDING: " + i + ", " + binding + ", " + b2 + " valid=" + valid + "  " + entry.streamName + " - " + entry.sourceObject +
                              ", " + binding);
                    boundAnimators.Add(binding as Animator);
                }
                else
                {
                    var binding = dir.GetGenericBinding(entry.sourceObject);
                    var b2      = dir.GetReferenceValue(new PropertyName(entry.streamName), out var valid);
                    Debug.Log("BINDING: " + i + " is " + entry.outputTargetType + " for " + b2 + ", " + entry.streamName + ", " + binding);
                }
            }

            if (InjectOnStart)
            {
                InjectMixers();
            }

            Debug.Log("-----------");
            if (TimelineUtilities.TryFindTimelinePlayable(dir.playableGraph, out var timeline))
            {
                Debug.Log(timeline.GetPlayableType() + ", " + timeline.GetType());
                if (TimelineUtilities.TryInjectMixer(dir, timeline, GetComponent <Animator>(), out var mixer))
                {
                    Debug.Log("INJECTED MIXER" + mixer);
                }
            }
        }