Exemple #1
0
        public static TimelineClip CreateClipOnTrack(Object asset, TrackAsset parentTrack, ITimelineState state, Vector2 mousePosition)
        {
            double       end          = parentTrack.end;
            TimelineClip timelineClip = parentTrack.CreateClipFromAsset(asset);

            if (timelineClip != null)
            {
                SelectionManager.Clear();
                timelineClip.timeScale = 1.0;
                if (!float.IsPositiveInfinity(mousePosition.x) && !float.IsPositiveInfinity(mousePosition.y))
                {
                    timelineClip.start = (double)state.ScreenSpacePixelToTimeAreaTime(mousePosition.x);
                }
                else
                {
                    timelineClip.start = state.SnapToFrameIfRequired(end);
                }
                timelineClip.start       = Math.Max(0.0, timelineClip.start);
                timelineClip.mixInCurve  = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
                timelineClip.mixOutCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
                SelectionManager.Add(timelineClip);
                parentTrack.CalculateExtrapolationTimes();
                state.Refresh();
            }
            return(timelineClip);
        }
Exemple #2
0
        private static void AddSubTrack(ITimelineState state, Type trackOfType, string trackName, TrackAsset track)
        {
            TrackAsset childAsset = state.timeline.CreateTrack(trackOfType, track, trackName);

            TimelineCreateUtilities.SaveAssetIntoObject(childAsset, track);
            track.SetCollapsed(false);
            state.Refresh();
        }
        private void CreateExistingMarker(string key, ITimelineMarkerContainer container, ITimelineState state)
        {
            Vector3 mousePosition = (this.trackMenuContext.clipTimeCreation != TrackDrawer.TrackMenuContext.ClipTimeCreation.Mouse) ? TimelineHelpers.sInvalidMousePosition : this.trackMenuContext.mousePosition;
            double  time          = TrackDrawer.CalculateMarkerTimeForMousePosition(container as TrackAsset, state, mousePosition);

            TimelineUndo.PushUndo(container as Object, "Create Marker");
            TimelineMarker newEvent = container.CreateMarker(key, time);

            TrackDrawer.SelectMarkerInInspector(state, newEvent);
            state.Refresh();
        }
Exemple #4
0
        public override void OnBuildTrackContextMenu(GenericMenu menu, TrackAsset track, ITimelineState state)
        {
            base.OnBuildTrackContextMenu(menu, track, state);
            bool           flag      = false;
            AnimationTrack animTrack = track as AnimationTrack;

            if (animTrack != null)
            {
                if (animTrack.CanConvertFromClipMode() || animTrack.CanConvertToClipMode())
                {
                    bool flag2 = animTrack.CanConvertFromClipMode();
                    bool flag3 = animTrack.CanConvertToClipMode();
                    if (flag2)
                    {
                        menu.AddItem(EditorGUIUtility.TextContent("Convert To Infinite Clip"), false, delegate(object parentTrack)
                        {
                            animTrack.ConvertFromClipMode(state.timeline);
                        }, track);
                        flag = true;
                    }
                    if (flag3)
                    {
                        menu.AddItem(EditorGUIUtility.TextContent("Convert To Clip Track"), false, delegate(object parentTrack)
                        {
                            animTrack.ConvertToClipMode();
                            state.Refresh();
                        }, track);
                    }
                }
            }
            if (!track.isSubTrack)
            {
                if (flag)
                {
                    menu.AddSeparator("");
                }
                menu.AddItem(EditorGUIUtility.TextContent("Add Override Track"), false, delegate(object parentTrack)
                {
                    AnimationTrackDrawer.AddSubTrack(state, typeof(AnimationTrack), "Override " + track.subTracks.Count.ToString(), track);
                }, track);
            }
        }