private void Awake()
        {
            this.SafeGetComponent(ref _animator);

            // for objects in bundles, it'll be pre-scrubbed out
            #if UNITY_EDITOR
            _animator.runtimeAnimatorController = null;
            #endif

            _graph = PlayableGraph.Create();

            _playSelectorOwner = ScriptPlayable <PlaySelectorPlayable> .Create(_graph);

            _playSelector = _playSelectorOwner.GetBehaviour();
            _playSelector.Initialize(_playSelectorOwner, _graph);

            var playableOutput = AnimationPlayableOutput.Create(_graph, "Animation", _animator);
            playableOutput.SetSourcePlayable(_playSelectorOwner);
            playableOutput.SetSourceInputPort(0);

            #if UNITY_EDITOR
            GraphVisualizerClient.Show(_graph, string.Format("{0}.PlayObjectAnimations", gameObject.name));
            #endif

            _graph.Play();
            _playSelectorOwner.Pause();
        }