void OnGUI() { Refresh(); if (Editor == null) { EditorGUILayout.LabelField("No 'Motion Editor' component available in the loaded scene."); return; } Scroll = EditorGUILayout.BeginScrollView(Scroll); Utility.SetGUIColor(UltiDraw.Black); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); Utility.SetGUIColor(UltiDraw.Grey); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); Utility.SetGUIColor(UltiDraw.Mustard); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUILayout.LabelField("Motion Processor"); } Pipeline = (PIPELINE)EditorGUILayout.EnumPopup("Pipeline", Pipeline); OfflineProcessing = EditorGUILayout.Toggle("Offline Processing", OfflineProcessing); SaveAfterProcessing = EditorGUILayout.Toggle("Save After Processing", SaveAfterProcessing); EditorGUILayout.BeginHorizontal(); if (Utility.GUIButton("Current", UltiDraw.DarkGrey, UltiDraw.White)) { int index = Editor.GetAssetIndex() + 1; Sequence.Start = index; Sequence.End = index; ApplySequence(); } if (Utility.GUIButton("All", UltiDraw.DarkGrey, UltiDraw.White)) { Sequence.Start = 1; Sequence.End = Assets.Length; ApplySequence(); } EditorGUILayout.EndHorizontal(); if (Sequence != null) { if (Sequence.Inspector(1, Assets.Length)) { ApplySequence(); } } if (Processing) { Utility.SetGUIColor(UltiDraw.LightGrey); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); if (Utility.GUIButton("Stop", UltiDraw.DarkRed, UltiDraw.White)) { this.StopAllCoroutines(); Processing = false; } } EditorGUI.DrawRect(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, (float)(Editor.GetAssetIndex() + 1) / (float)Assets.Length * EditorGUILayout.GetControlRect().width, 25f), UltiDraw.Green.Opacity(0.75f)); } else { Utility.SetGUIColor(UltiDraw.LightGrey); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); if (Utility.GUIButton("Process", UltiDraw.DarkGrey, UltiDraw.White)) { this.StartCoroutine(Process()); } } } Utility.SetGUIColor(UltiDraw.Mustard); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Page", GUILayout.Width(40f)); EditorGUI.BeginChangeCheck(); int page = EditorGUILayout.IntField(Page, GUILayout.Width(40f)); if (EditorGUI.EndChangeCheck()) { LoadPage(page); } EditorGUILayout.LabelField("/" + GetPages()); EditorGUILayout.LabelField("Filter", GUILayout.Width(40f)); EditorGUI.BeginChangeCheck(); string filter = EditorGUILayout.TextField(Filter, GUILayout.Width(200f)); if (EditorGUI.EndChangeCheck()) { ApplyFilter(filter); } if (Utility.GUIButton("<", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { LoadPage(Mathf.Max(Page - 1, 1)); } if (Utility.GUIButton(">", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { LoadPage(Mathf.Min(Page + 1, GetPages())); } EditorGUILayout.EndHorizontal(); } int start = GetStart(); int end = GetEnd(); for (int i = start; i < end; i++) { if (Instances[i].Processed) { Utility.SetGUIColor(UltiDraw.DarkGreen); } else if (Instances[i].Selected) { Utility.SetGUIColor(UltiDraw.Gold); } else { Utility.SetGUIColor(UltiDraw.DarkRed); } using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField((i + 1).ToString(), GUILayout.Width(20f)); Instances[i].Selected = EditorGUILayout.Toggle(Instances[i].Selected, GUILayout.Width(20f)); EditorGUILayout.LabelField(Utility.GetAssetName(Instances[i].GUID)); EditorGUILayout.EndHorizontal(); } } } } EditorGUILayout.EndScrollView(); }
void OnGUI() { Refresh(); if (Editor == null) { EditorGUILayout.LabelField("No editor available in scene."); return; } Scroll = EditorGUILayout.BeginScrollView(Scroll); Utility.SetGUIColor(UltiDraw.Black); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); Utility.SetGUIColor(UltiDraw.Grey); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); Utility.SetGUIColor(UltiDraw.Mustard); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUILayout.LabelField("Motion Exporter"); } Utility.SetGUIColor(UltiDraw.White); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUI.BeginDisabledGroup(true); EditorGUILayout.FloatField("Export Framerate", Editor.TargetFramerate); EditorGUILayout.TextField("Export Path", GetExportPath()); EditorGUI.EndDisabledGroup(); } Pipeline = (PIPELINE)EditorGUILayout.EnumPopup("Pipeline", Pipeline); FrameShifts = EditorGUILayout.IntField("Frame Shifts", FrameShifts); FrameBuffer = Mathf.Max(1, EditorGUILayout.IntField("Frame Buffer", FrameBuffer)); WriteMirror = EditorGUILayout.Toggle("Write Mirror", WriteMirror); if (!Exporting) { if (Utility.GUIButton("Export Data", UltiDraw.DarkGrey, UltiDraw.White)) { this.StartCoroutine(ExportData()); } } else { EditorGUILayout.LabelField("Asset: " + Editor.GetAsset().GetName()); EditorGUILayout.LabelField("Index: " + (Editor.GetAssetIndex() + 1) + " / " + Assets.Length); EditorGUILayout.LabelField("Mirror: " + Editor.Mirror); EditorGUILayout.LabelField("Frames Per Second: " + Performance.ToString("F3")); EditorGUI.DrawRect(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, (float)(Editor.GetAssetIndex() + 1) / (float)Assets.Length * EditorGUILayout.GetControlRect().width, 25f), UltiDraw.Green.Opacity(0.75f)); EditorGUI.DrawRect(new Rect(EditorGUILayout.GetControlRect().x, EditorGUILayout.GetControlRect().y, Progress * EditorGUILayout.GetControlRect().width, 25f), UltiDraw.Green.Opacity(0.75f)); EditorGUI.BeginDisabledGroup(Aborting); if (Utility.GUIButton(Aborting ? "Aborting" : "Stop", Aborting ? UltiDraw.Gold : UltiDraw.DarkRed, UltiDraw.White)) { Aborting = true; } EditorGUI.EndDisabledGroup(); } Utility.SetGUIColor(UltiDraw.LightGrey); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); Utility.SetGUIColor(UltiDraw.Mustard); using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Page", GUILayout.Width(40f)); EditorGUI.BeginChangeCheck(); int page = EditorGUILayout.IntField(Page, GUILayout.Width(40f)); if (EditorGUI.EndChangeCheck()) { LoadPage(page); } EditorGUILayout.LabelField("/" + GetPages()); EditorGUILayout.LabelField("Filter", GUILayout.Width(40f)); EditorGUI.BeginChangeCheck(); string filter = EditorGUILayout.TextField(Filter, GUILayout.Width(200f)); if (EditorGUI.EndChangeCheck()) { ApplyFilter(filter); } EditorGUILayout.BeginHorizontal(); if (Utility.GUIButton("Enable All", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { foreach (Asset a in Assets) { a.Selected = true; } } if (Utility.GUIButton("Disable All", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { foreach (Asset a in Assets) { a.Selected = false; } } if (Utility.GUIButton("Current", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { string guid = Utility.GetAssetGUID(Editor.GetAsset()); foreach (Asset a in Assets) { a.Selected = a.GUID == guid; } } EditorGUILayout.EndHorizontal(); if (Utility.GUIButton("<", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { LoadPage(Mathf.Max(Page - 1, 1)); } if (Utility.GUIButton(">", UltiDraw.DarkGrey, UltiDraw.White, 80f, 16f)) { LoadPage(Mathf.Min(Page + 1, GetPages())); } EditorGUILayout.EndHorizontal(); } int start = GetStart(); int end = GetEnd(); for (int i = start; i < end; i++) { if (Instances[i].Exported) { Utility.SetGUIColor(UltiDraw.DarkGreen); } else if (Instances[i].Selected) { Utility.SetGUIColor(UltiDraw.Gold); } else { Utility.SetGUIColor(UltiDraw.DarkRed); } using (new EditorGUILayout.VerticalScope("Box")) { Utility.ResetGUIColor(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField((i + 1).ToString(), GUILayout.Width(20f)); Instances[i].Selected = EditorGUILayout.Toggle(Instances[i].Selected, GUILayout.Width(20f)); EditorGUILayout.LabelField(Utility.GetAssetName(Instances[i].GUID)); EditorGUILayout.EndHorizontal(); } } } } } EditorGUILayout.EndScrollView(); }