public static IEnumerator Run(StateMachine stateMachine, Timeline timeline)
            {
#if UNITY_EDITOR && DEBUG
                TimelineStateMachineDebug.OnTimelineStateStarted(stateMachine, null, null);
#endif
                return(PerformState(stateMachine, null, timeline));
            }
            public static IEnumerator Run(StateMachine stateMachine, TimelineStateRefProperty stateRef, GameObject sourceObject = null)
            {
                TimelineState state = stateRef.LoadTimelineState(sourceObject != null ? sourceObject : stateMachine.gameObject);

                if (state != null)
                {
#if UNITY_EDITOR && DEBUG
                    string debugFileName = AssetDatabase.GetAssetPath(stateRef.GetFile());
                    TimelineStateMachineDebug.OnTimelineStateStarted(stateMachine, state, debugFileName);
#endif
                    return(PerformState(stateMachine, state, state._timeline));
                }

                return(null);
            }
            public static IEnumerator Run(StateMachine stateMachine, TimelineStateRef stateRef, GameObject sourceObject = null)
            {
                TimelineState state = stateRef.GetTimelineState(sourceObject != null ? sourceObject : stateMachine.gameObject);

                if (state != null)
                {
#if UNITY_EDITOR && DEBUG
                    string debugFileName = stateRef._file._filePath;
                    TimelineStateMachineDebug.OnTimelineStateStarted(stateMachine, state, debugFileName);
#endif
                    return(PerformState(stateMachine, state, state._timeline));
                }

                return(null);
            }