using net.shutosg.UnityEditor; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; namespace net.shutosg.UniEaseCopy { public class UniEaseCopyWindow : EditorWindow { private Label logTypeLabel; private Label logText; private Label keyCountText; private ListView keyframeList; private Button pasteEaseButton; private Button pasteValueButton; [MenuItem("Window/Animation/UniEaseCopy")] public static void ShowWindow() { var openedWindows = (EditorWindow[])Resources.FindObjectsOfTypeAll(typeof(UniEaseCopyWindow)); var window = openedWindows.Length == 0 ? CreateInstance() : openedWindows[0]; window.titleContent = new GUIContent("UniEaseCopy"); window.ShowUtility(); } private static T LoadAsset(string assetName) where T : Object { return AssetDatabase.LoadAssetAtPath(DirectoryAnchor.Find("EditorResources") + assetName); } private static VisualTreeAsset LoadTreeAsset(string assetName) => LoadAsset(assetName); private static StyleSheet LoadStyleAsset(string assetName) => LoadAsset(assetName); public void CreateGUI() { #if UNITY_2020_1_OR_NEWER var index = LoadTreeAsset("Index.uxml").CloneTree(); #else var index = LoadTreeAsset("IndexWithoutStyle.uxml").CloneTree(); index.styleSheets.Add(LoadStyleAsset("Index.uss")); #endif rootVisualElement.Add(index); logText = index.Q