public virtual void Draw(Rect trackRect, TimelineWindow.TimelineState state, TrackDrawer drawer)
        {
            int num  = this.ComputeDirtyHash();
            int num2 = state.timeAreaTranslation.GetHashCode() ^ state.timeAreaScale.GetHashCode() ^ trackRect.GetHashCode();

            this.CalculateClipRectangle(base.parentTrackGUI.track, trackRect, state, num ^ num2);
            this.DrawInto(base.rect, DirectorStyles.Instance.eventIcon, state);
        }
예제 #2
0
        public virtual void Draw(Rect trackRect, TimelineWindow.TimelineState state, TrackDrawer drawer)
        {
            if (SelectionManager.Contains(this.clip))
            {
                this.clip.dirtyHash = 0;
            }
            int num = this.ComputeDirtyHash();
            int h   = HashUtility.CombineHash(state.timeAreaTranslation.GetHashCode(), state.timeAreaScale.GetHashCode(), trackRect.GetHashCode());

            this.CalculateClipRectangle(base.parentTrackGUI.track, trackRect, state, num.CombineHash(h));
            this.CalculateBlendRect();
            this.CalculateLoopRects(trackRect, state, num);
            this.clip.dirtyHash = num;
            if (drawer.canDrawExtrapolationIcon)
            {
                this.DrawExtrapolation(trackRect, base.UnClippedRect);
            }
            this.DrawInto(base.rect, this.m_Styles.displayBackground, state);
        }
예제 #3
0
 public void DrawBlendingCurves(TimelineWindow.TimelineState state)
 {
     if (Event.get_current().get_type() == 7)
     {
         Color color = (!SelectionManager.Contains(this.clip)) ? Color.get_white() : TrackDrawer.GetHighlightColor(Color.get_white());
         Color colorTrackBackground = DirectorStyles.Instance.customSkin.colorTrackBackground;
         Color color2 = (!SelectionManager.Contains(this.clip)) ? DirectorStyles.Instance.customSkin.colorTrackBackground : Color.get_white();
         if (this.blendInKind == TimelineClipGUI.BlendKind.Ease)
         {
             ClipRenderer.RenderTexture(this.mixInRect, DirectorStyles.Instance.timelineClip.get_normal().get_background(), DirectorStyles.Instance.blendingIn.get_normal().get_background(), color, false);
             EditorGUI.DrawRect(new Rect(this.mixInRect.get_xMax() - 2f, this.mixInRect.get_yMin(), 2f, this.mixInRect.get_height()), colorTrackBackground);
             Graphics.DrawAAPolyLine(4f, new Vector3[]
             {
                 new Vector3(this.mixInRect.get_xMin() + 1f, this.mixInRect.get_yMax() - 1f, 0f),
                 new Vector3(this.mixInRect.get_xMax(), this.mixInRect.get_yMin() - 1.5f, 0f)
             }, color2);
         }
         if (this.blendOutKind == TimelineClipGUI.BlendKind.Ease || this.blendOutKind == TimelineClipGUI.BlendKind.Mix)
         {
             ClipRenderer.RenderTexture(this.mixOutRect, DirectorStyles.Instance.timelineClip.get_normal().get_background(), DirectorStyles.Instance.blendingOut.get_normal().get_background(), color, false);
             EditorGUI.DrawRect(new Rect(this.mixOutRect.get_xMin(), this.mixOutRect.get_yMin(), 2f, this.mixOutRect.get_height()), colorTrackBackground);
             Graphics.DrawLineAA(4f, new Vector3(this.mixOutRect.get_xMin() + 1.5f, this.mixOutRect.get_yMin() + 1.5f, 0f), new Vector3(this.mixOutRect.get_xMax(), this.mixOutRect.get_yMax() - 1f, 0f), color2);
         }
         if (this.blendInKind == TimelineClipGUI.BlendKind.Mix)
         {
             ClipRenderer.RenderTexture(this.mixInRect, DirectorStyles.Instance.timelineClip.get_normal().get_background(), DirectorStyles.Instance.blendingOut.get_normal().get_background(), color, false);
             EditorGUI.DrawRect(new Rect(this.mixInRect.get_xMax(), this.mixInRect.get_yMin(), 2f, this.mixOutRect.get_height()), colorTrackBackground);
             Graphics.DrawAAPolyLine(4f, new Vector3[]
             {
                 new Vector3(this.mixInRect.get_xMin(), this.mixInRect.get_yMin(), 0f),
                 new Vector3(this.mixInRect.get_xMax(), this.mixInRect.get_yMax() - 1f, 0f)
             }, color2);
         }
     }
 }
예제 #4
0
        public void OnGUI(Rect rect)
        {
            Rect itemRect = Rect.zero;

            itemRect.x      = m_ActionData.FireTime * m_DrawerConfig.WidthForSecond - m_DrawerConfig.ScrollPosX;
            itemRect.y      = rect.y;
            itemRect.height = m_DrawerConfig.TrackLineHeight;


            if (m_DurationActionData != null)
            {
                if (m_DurationActionData.Duration <= 0)
                {
                    m_DurationActionData.Duration = m_DrawerConfig.TimeStep;
                }
                itemRect.width = Mathf.Max(m_DrawerConfig.TimeStepWidth, m_DurationActionData.Duration * m_DrawerConfig.WidthForSecond);
            }
            else
            {
                itemRect.width = m_DrawerConfig.TimeStepWidth;
            }

            GUI.Label(itemRect, m_ActionBriefName, IsSelected ? "flow node 6" : "flow node 5");

            int       eventBtn   = Event.current.button;
            EventType eventType  = Event.current.type;
            bool      isContains = itemRect.Contains(Event.current.mousePosition);

            if (eventBtn == 0 && eventType == EventType.MouseDown && isContains)
            {
                m_IsPressed = true;
                IsSelected  = true;

                Event.current.Use();
            }
            else if (eventBtn == 0 && m_IsPressed && eventType == EventType.MouseUp)
            {
                m_IsPressed = false;
                Event.current.Use();
            }
            else if (eventBtn == 0 && m_IsPressed && IsSelected && eventType == EventType.MouseDrag)
            {
                Vector2 deltaPos  = Event.current.delta;
                float   deltaTime = deltaPos.x / m_DrawerConfig.WidthForSecond;

                m_ActionData.FireTime += deltaTime;
                if (m_ActionData.FireTime < 0)
                {
                    m_ActionData.FireTime = 0;
                }
                else
                {
                    float endTime = m_ActionData.FireTime;
                    if (m_DurationActionData != null)
                    {
                        endTime += m_DurationActionData.Duration;
                    }
                    if (endTime > m_DrawerConfig.TimeLength)
                    {
                        m_ActionData.FireTime = m_DrawerConfig.TimeLength - (endTime - m_ActionData.FireTime);
                    }
                }

                Event.current.Use();
            }
            else if (eventBtn == 1 && isContains && eventType == EventType.MouseUp)
            {
                if (!IsSelected)
                {
                    IsSelected = true;
                }

                GenericMenu menu = new GenericMenu();
                menu.AddItem(new GUIContent("Delete"), false, () =>
                {
                    TrackDrawer.OnItemDelete(this);
                });
                menu.AddItem(new GUIContent("Copy"), false, () =>
                {
                    TrackDrawer.OnActionCopy(m_ActionData);
                });
                menu.ShowAsContext();

                Event.current.Use();
            }
        }
예제 #5
0
 protected TimelineTrackBaseGUI(int id, int depth, TreeViewItem parent, string displayName, TrackAsset trackAsset, TreeViewController tv, TimelineTreeViewGUI tvgui) : base(id, depth, parent, displayName)
 {
     this.m_Drawer                = TrackDrawer.CreateInstance(trackAsset);
     this.m_Drawer.track          = trackAsset;
     this.m_Drawer.sequencerState = tvgui.TimelineWindow.state;
     this.m_Drawer.ConfigureUITrack(this);
     this.isExpanded   = false;
     this.isDropTarget = false;
     this.track        = trackAsset;
     this.< treeView > k__BackingField = tv;
     this.m_TreeViewGUI = tvgui;
     if (TimelineTrackBaseGUI.< > f__mg$cache0 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache0 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.MouseDown += TimelineTrackBaseGUI.< > f__mg$cache0;
     if (TimelineTrackBaseGUI.< > f__mg$cache1 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache1 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.MouseDrag += TimelineTrackBaseGUI.< > f__mg$cache1;
     if (TimelineTrackBaseGUI.< > f__mg$cache2 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache2 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.MouseUp += TimelineTrackBaseGUI.< > f__mg$cache2;
     if (TimelineTrackBaseGUI.< > f__mg$cache3 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache3 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.DoubleClick += TimelineTrackBaseGUI.< > f__mg$cache3;
     if (TimelineTrackBaseGUI.< > f__mg$cache4 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache4 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.KeyDown += TimelineTrackBaseGUI.< > f__mg$cache4;
     if (TimelineTrackBaseGUI.< > f__mg$cache5 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache5 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.KeyUp += TimelineTrackBaseGUI.< > f__mg$cache5;
     if (TimelineTrackBaseGUI.< > f__mg$cache6 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache6 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.DragPerform += TimelineTrackBaseGUI.< > f__mg$cache6;
     if (TimelineTrackBaseGUI.< > f__mg$cache7 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache7 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.DragExited += TimelineTrackBaseGUI.< > f__mg$cache7;
     if (TimelineTrackBaseGUI.< > f__mg$cache8 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache8 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.DragUpdated += TimelineTrackBaseGUI.< > f__mg$cache8;
     if (TimelineTrackBaseGUI.< > f__mg$cache9 == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cache9 = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.MouseWheel += TimelineTrackBaseGUI.< > f__mg$cache9;
     if (TimelineTrackBaseGUI.< > f__mg$cacheA == null)
     {
         TimelineTrackBaseGUI.< > f__mg$cacheA = new TimelineUIEvent(TimelineTrackBaseGUI.NoOp);
     }
     this.ContextClick += TimelineTrackBaseGUI.< > f__mg$cacheA;
 }