using System.Collections.Generic; using System.Linq; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; using UnityEditor.UIElements; using UnityEngine.Playables; using UnityEngine.Timeline; namespace Streamingle.Editor { public class TimelineBindingTransferWindow : EditorWindow { private const string CommonUssPath = "Assets/Scripts/Streamingle/StreamingleControl/Editor/UXML/StreamingleCommon.uss"; private ObjectField sourceField; private ObjectField targetField; private Toggle matchByPathToggle; private Toggle requireTypeToggle; private Toggle showPreviewToggle; private VisualElement previewContainer; private Button applyBtn; private PlayableDirector sourceDirector; private PlayableDirector targetDirector; private struct TrackMap { public TrackAsset sourceTrack; public TrackAsset targetTrack; public Object boundObject; } private List previewMappings = new List(); [MenuItem("Tools/Timeline Tools/타임라인 바인딩 복사")] public static void ShowWindow() { GetWindow("타임라인 바인딩 복사"); } public void CreateGUI() { var root = rootVisualElement; root.AddToClassList("tool-root"); var commonUss = AssetDatabase.LoadAssetAtPath(CommonUssPath); if (commonUss != null) root.styleSheets.Add(commonUss); root.Add(new Label("타임라인 바인딩 복사") { name = "title" }); root.Q