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); }
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(); }