123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using UnityEngine;
- using UnityEngine.UIElements;
-
- namespace UnityEditor.U2D.Aseprite
- {
- internal class ExportAssetsPopup : EditorWindow
- {
- static class Content
- {
- public static readonly string titleText = L10n.Tr("Export Animation Assets");
- public static readonly string bodyText = L10n.Tr("Select which assets should be exported");
- public static readonly string controllerText = L10n.Tr("Animator Controller");
- public static readonly string clipsText = L10n.Tr("Animation Clips");
- public static readonly string exportText = L10n.Tr("Export");
- public static readonly string cancelText = L10n.Tr("Cancel");
- }
-
- const string k_SubElementUssClass = "SubElement";
- const string k_ControllerToggleId = "ControllerToggle";
- const string k_ClipsToggleId = "ClipsToggle";
-
- AsepriteImporterEditor m_ImporterEditor;
- AsepriteImporter[] m_ImporterTargets;
-
- Toggle m_ControllerToggle;
- Toggle m_ClipsToggle;
-
-
- void Awake()
- {
- titleContent = new GUIContent(Content.titleText);
-
- var size = new Vector2(300f, 110f);
- maxSize = size;
- minSize = size;
- }
-
- void OnSelectionChange()
- {
- Close();
- }
-
- public void ShowExportPopup(AsepriteImporterEditor importerEditor, AsepriteImporter[] importerTargets)
- {
- m_ImporterEditor = importerEditor;
- m_ImporterTargets = importerTargets;
- ShowPopup();
- }
-
- void CreateGUI()
- {
- var styleSheet = EditorGUIUtility.Load("packages/com.unity.2d.aseprite/Editor/Assets/UI/ExportAnimAssetsStyleSheet.uss") as StyleSheet;
- rootVisualElement.styleSheets.Add(styleSheet);
-
- var headerLabel = new Label(Content.bodyText)
- {
- name = "Header"
- };
- rootVisualElement.Add(headerLabel);
-
- m_ControllerToggle = new Toggle(Content.controllerText)
- {
- value = GetEditorPrefsBool(k_ControllerToggleId, true)
- };
- m_ControllerToggle.RegisterValueChangedCallback(x =>
- {
- SetEditorPrefsBool(k_ControllerToggleId, m_ControllerToggle.value);
- });
- m_ControllerToggle.AddToClassList(k_SubElementUssClass);
- rootVisualElement.Add(m_ControllerToggle);
-
- m_ClipsToggle = new Toggle(Content.clipsText)
- {
- value = GetEditorPrefsBool(k_ClipsToggleId, false)
- };
- m_ClipsToggle.RegisterValueChangedCallback(x =>
- {
- SetEditorPrefsBool(k_ClipsToggleId, m_ClipsToggle.value);
- });
- m_ClipsToggle.AddToClassList(k_SubElementUssClass);
- rootVisualElement.Add(m_ClipsToggle);
-
- var buttonArea = new VisualElement()
- {
- name = "ButtonArea"
- };
- rootVisualElement.Add(buttonArea);
-
- var cancelButton = new Button()
- {
- text = Content.cancelText
- };
- cancelButton.clicked += Close;
- buttonArea.Add(cancelButton);
-
- var exportButton = new Button()
- {
- text = Content.exportText
- };
- exportButton.clicked += () =>
- {
- var exportClips = m_ClipsToggle.value;
- var exportController = m_ControllerToggle.value;
- ImportUtilities.ExportAnimationAssets(m_ImporterTargets, exportClips, exportController);
- m_ImporterEditor.SaveChanges();
- Close();
- };
- buttonArea.Add(exportButton);
- }
-
- bool GetEditorPrefsBool(string id, bool defaultValue) => EditorPrefs.GetBool(GetType().Name + id, defaultValue);
- void SetEditorPrefsBool(string id, bool newValue) => EditorPrefs.SetBool(GetType().Name + id, newValue);
- }
- }
|