/// <inheritdoc/>
        public override ClipDrawOptions GetClipOptions(TimelineClip clip) {
            ClipDrawOptions clipOptions = base.GetClipOptions(clip);
            FaderPlayableAsset asset = clip.asset as FaderPlayableAsset;
            if (null == asset)
                return clipOptions;

            clipOptions.highlightColor = asset.GetColor();            
            return clipOptions;
        }
Пример #2
0
        public IEnumerator CreatePlayableAsset()
        {
            EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects);

            Color            col        = Color.green;
            GameObject       directorGo = new GameObject("Director");
            PlayableDirector director   = directorGo.AddComponent <PlayableDirector>();

            //Create timeline asset
            TimelineAsset asset = ScriptableObject.CreateInstance <TimelineAsset>();

            director.playableAsset = asset;

            //Create empty asset
            FaderPlayableAsset faderAsset = ScriptableObject.CreateInstance <FaderPlayableAsset>();
            FaderTrack         faderTrack = asset.CreateTrack <FaderTrack>(null, "Footage");
            TimelineClip       clip       = faderTrack.CreateDefaultClip();

            clip.asset = faderAsset;
            faderAsset.SetFadeType(FadeType.FADE_IN);
            faderAsset.SetColor(col);

            //Create new Image
            Transform canvasT = UIUtility.CreateCanvas();

            GameObject imageObj = new GameObject("Image");

            imageObj.transform.SetParent(canvasT);
            Image image = imageObj.AddComponent <Image>();

            director.SetGenericBinding(faderTrack, image);

            //Select gameObject and open Timeline Window. This will trigger the TimelineWindow's update etc.
            EditorApplication.ExecuteMenuItem("Window/Sequencing/Timeline");
            Selection.activeTransform = directorGo.transform;
            yield return(null);

            TimelineEditor.selectedClip = clip;
            yield return(null);

            //FadeIn
            Color zeroAlphaCol = col;

            zeroAlphaCol.a = 0;
            Assert.AreEqual(zeroAlphaCol, image.color);

            //FadeOut
            faderAsset.SetFadeType(FadeType.FADE_OUT);
            TimelineEditor.Refresh(RefreshReason.ContentsModified);
            yield return(null); //Give time for the Timeline Window to update.

            Assert.AreEqual(col, image.color);
        }