using System; using System.Collections.Generic; using Wwise.Wooduan.Editor; using UnityEditor; using UnityEngine; namespace Wwise.Wooduan.Tools { internal class AsBackupWindow : AkWooduanAssetSearcher { private void OnGUI() { AkWooduanGuiDrawer.DisplaySearchPath(ref SearchPath); DrawComponents(); DrawAnimationEvents(); } private void DrawComponents() { EditorGUILayout.Separator(); EditorGUILayout.LabelField("Components in Prefabs and Scenes", EditorStyles.boldLabel); ShowToggles(); using (new EditorGUILayout.VerticalScope(GUI.skin.box)) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Search Inclusion", GUILayout.Width(150)); DrawToggle(ref AkWooduanComponentBackup.Instance.IncludeA, "Prefabs"); DrawToggle(ref AkWooduanComponentBackup.Instance.IncludeB, "Scenes"); DrawToggle(ref AkWooduanComponentBackup.Instance.IncludePrefabsInScene, "Prefabs Variants"); EditorGUILayout.EndHorizontal(); DrawToggle(ref AkWooduanComponentBackup.Instance.SeparateXmlFiles, "Create one xml per component"); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Export", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.Export(); if (GUILayout.Button("Import", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.Import(); if (GUILayout.Button("Compare", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.Compare(); if (GUILayout.Button("Remove Unsaved", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.RemoveUnsaved(); if (GUILayout.Button("Remove All", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.RemoveAll(); if (GUILayout.Button("Combine", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.Combine(); if (GUILayout.Button("Open", EditorStyles.toolbarButton)) AkWooduanComponentBackup.Instance.OpenXmlFile(); EditorGUILayout.EndHorizontal(); } } private void ShowToggles() { using (new EditorGUILayout.VerticalScope(GUI.skin.box)) { var selections = new Dictionary(AkWooduanComponentBackup.Instance.ComponentsToSearch); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Select All", EditorStyles.miniButtonLeft)) { foreach (var selection in selections) { AkWooduanComponentBackup.Instance.ComponentsToSearch[selection.Key] = true; } } if (GUILayout.Button("Deselect All", EditorStyles.miniButtonRight)) { foreach (var selection in selections) { AkWooduanComponentBackup.Instance.ComponentsToSearch[selection.Key] = false; } } EditorGUILayout.EndHorizontal(); var count = 0; EditorGUILayout.BeginHorizontal(); foreach (var selection in selections) { var selected = GUILayout.Toggle(selection.Value, selection.Key.Name, GUILayout.Width(150)); if (selected != selection.Value) AkWooduanComponentBackup.Instance.ComponentsToSearch[selection.Key] = selected; count++; if (count % 3 == 0) { EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); } } EditorGUILayout.EndHorizontal(); } } private void DrawAnimationEvents() { EditorGUILayout.Separator(); EditorGUILayout.LabelField("Animation Events in Animation Clips and Models", EditorStyles.boldLabel); using (new EditorGUILayout.VerticalScope(GUI.skin.box)) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Search Inclusion", GUILayout.Width(150)); DrawToggle(ref AkWooduanAnimationBackup.Instance.IncludeA, "AnimationClip"); DrawToggle(ref AkWooduanAnimationBackup.Instance.IncludeB, "Model"); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Export", EditorStyles.toolbarButton)) AkWooduanAnimationBackup.Instance.Export(); if (GUILayout.Button("Import", EditorStyles.toolbarButton)) AkWooduanAnimationBackup.Instance.Import(); if (GUILayout.Button("Compare", EditorStyles.toolbarButton)) AkWooduanAnimationBackup.Instance.Compare(); if (GUILayout.Button("Remove All", EditorStyles.toolbarButton)) AkWooduanAnimationBackup.Instance.RemoveAll(); if (GUILayout.Button("Open", EditorStyles.toolbarButton)) AkWooduanAnimationBackup.Instance.OpenXmlFile(); EditorGUILayout.EndHorizontal(); } } private void DrawToggle(ref bool toggle, string label) { toggle = GUILayout.Toggle(toggle, label); } } }