//----------------------------------------------------------------------------------------------------------------------


        private static PlayableDirector CreateDirectorWithTimelineAsset(string candidatePath,
                                                                        out TimelineAsset timelineAsset)
        {
            string           timelineAssetPath = AssetDatabase.GenerateUniqueAssetPath(candidatePath);
            PlayableDirector director          = new GameObject("Director").AddComponent <PlayableDirector>();

            timelineAsset = TimelineEditorUtility.CreateAsset(timelineAssetPath);
            Assert.IsNotNull(timelineAsset);

            director.playableAsset = timelineAsset;
            Assert.IsTrue(File.Exists(timelineAssetPath));
            return(director);
        }