Пример #1
0
        private int DrawTreeTimeline(GPEditor.TimelineWindow.TreeNode node, int level)
        {
            if (object.Equals(node, null) || string.IsNullOrEmpty(node.name))
            {
                return(level);
            }
            treeIndex2++;
            EditorGUILayout.BeginHorizontal();
            GEvent evt = node.evt;

            if (evt == curEvent)
            {
                GUI.contentColor = Color.green;
            }
            else
            {
                GUI.contentColor = Color.white;
            }
            GEventStyle tStyle           = evt.mStyle;
            FrameRange  validRange       = evt.GetMaxFrameRange();
            FrameRange  rang             = tStyle.range;
            float       sliderStartFrame = rang.Start;
            float       sliderEndFrame   = rang.End;

            EditorGUI.BeginChangeCheck();
            float allW   = position.width - 150f;
            float evtW   = allW * (float)validRange.Length / evt.root.Length;
            float startX = allW * (float)validRange.Start / evt.root.Length;

            GUILayout.Space(startX);
            if (GUILayout.Button(tStyle.Attr.name, GUILayout.Width(60f)))
            {
                SetSelect(node);
            }
            GUILayout.Label(validRange.Start.ToString(), GUILayout.Width(30f));
            EditorGUILayout.MinMaxSlider(ref sliderStartFrame, ref sliderEndFrame, validRange.Start, validRange.End, GUILayout.Width(evtW));
            GUILayout.Label(validRange.End.ToString(), GUILayout.Width(30f));
            if (EditorGUI.EndChangeCheck())
            {
                rang.Start        = (int)sliderStartFrame;
                rang.End          = (int)sliderEndFrame;
                tStyle.range      = rang;
                rootNode.isChange = true;
                evt.OnStyleChange();
                SetSelect(node);
            }
            EditorGUILayout.EndHorizontal();
            EventType eType = Event.current.type;

            if (node.Length == 0)
            {
                return(level);
            }
            for (int i = 0; i < node.childs.Count; i++)
            {
                DrawTreeTimeline(node.childs[i], level + 1);
            }
            return(level);
        }
Пример #2
0
        void OnGUI()
        {
            if (curEvt == null)
            {
                return;
            }
            //if (SkillWindow.Inst == null)
            //{
            //    this.Close();
            //    return;
            //}
            mScrollPos = EditorGUILayout.BeginScrollView(mScrollPos);
            EditorGUILayout.BeginVertical();
            drawRoot(curEvt.root.lStyle);
            GEventStyle style = curEvt.mStyle;

            GUILayout.Label(style.Attr.name + "    id:" + curEvt.id);
            FrameRange rang       = style.range;
            FrameRange validRange = curEvt.GetMaxFrameRange();

            if (!(style is GTimelineStyle))
            {
                EditorGUI.BeginChangeCheck();
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label("Range    ");
                GUILayout.Label("S:", EditorStyles.label);
                GUI.SetNextControlName(FRAMERANGE_START_FIELD_ID);
                rang.Start = EditorGUILayout.IntField(style.Start);
                GUILayout.Label("E:", EditorStyles.label);
                rang.End = EditorGUILayout.IntField(style.End);
                EditorGUILayout.EndHorizontal();
                EditorGUI.BeginChangeCheck();
                EditorGUILayout.BeginHorizontal();
                GUILayout.Label("t:" + curEvt.LengthTime + "s", GUILayout.Width(30f));
                GUILayout.Space(20f);//EditorGUIUtility.labelWidth
                GUILayout.Label(validRange.Start.ToString(), GUILayout.Width(30f));
                float sliderStartFrame = rang.Start;
                float sliderEndFrame   = rang.End;
                EditorGUILayout.MinMaxSlider(ref sliderStartFrame, ref sliderEndFrame, validRange.Start, validRange.End);
                GUILayout.Label(validRange.End.ToString(), GUILayout.Width(30f));
                EditorGUILayout.EndHorizontal();
                if (EditorGUI.EndChangeCheck())
                {
                    rang.Start = (int)sliderStartFrame;
                    rang.End   = (int)sliderEndFrame;
                }
                rang = FrameRange.Resize(rang, validRange);
            }
            else
            {
            }
            if (rang != style.range)
            {
                rootNode.isChange = true;
            }
            style.range = rang;
            RanderEvent(style);
            curEvt.OnStyleChange();

            EditorGUILayout.EndVertical();
            EditorGUILayout.EndScrollView();
        }