using System; using System.Linq; using UnityEngine; using UnityEngine.Playables; using UnityEngine.UIElements; namespace UnityEditor.Sequences { internal partial class BasicSequenceAssetView : ISequenceAssetView { static readonly string k_UXMLFilePath = "Packages/com.unity.sequences/Editor/SequenceAssemblyWindow/UIData/SequenceAssetVariantField.uxml"; public event Action variantSelected; GameObject m_Data; VisualElement m_root; PopupField m_DropDown; public VisualElement root => m_root; public PopupField variantsSelector => m_DropDown; public BasicSequenceAssetView() { var visualTree = AssetDatabase.LoadAssetAtPath(k_UXMLFilePath); m_root = visualTree.CloneTree(); StyleSheetUtility.SetStyleSheets(root); } public void Bind(GameObject selection, PlayableDirector director) { m_Data = SequenceAssetUtility.GetSource(selection); VisualElement popup = root.Q("variants"); GenerateVariantsDropdown(selection); popup.Add(m_DropDown); Button menuButton = root.Q