using System; using UnityEditor.U2D.Tooling.Analyzer.UIElement.OKCancel; using UnityEngine.UIElements; namespace UnityEditor.U2D.Tooling.Analyzer { class SpriteAtlasTextureSpaceUsedIssueSettings : VisualElement { const string k_Uxml = "Packages/com.unity.2d.tooling/Editor/Insider/SpriteAtlas/SpriteAtlasIssueReport/SpriteAtlasTextureSpaceUsedIssue/SpriteAtlasTextureSpaceUsedIssueSettings.uxml"; IntegerField m_PageCountField; event Action m_OnMemorySizeChanged; int m_PageCount; OKCancelElement m_OkCancelElement; public SpriteAtlasTextureSpaceUsedIssueSettings(int pageCount) { m_PageCount = pageCount; AssetDatabase.LoadAssetAtPath(k_Uxml).CloneTree(this); m_OkCancelElement = this.Q(); m_OkCancelElement.SetOKButtonText("Apply"); m_OkCancelElement.onOKClicked += OnOKClicked; m_OkCancelElement.ShowCancelButton(false); m_OkCancelElement.EnableOKButton(false); m_PageCountField = this.Q("size"); m_PageCountField.RegisterValueChangedCallback(x => { m_PageCountField.SetValueWithoutNotify(Math.Clamp(x.newValue,0, 1000)); m_OkCancelElement.EnableOKButton(true); }); m_PageCountField.SetValueWithoutNotify(m_PageCount); } public event Action onMemorySizeChanged { add => m_OnMemorySizeChanged += value; remove => m_OnMemorySizeChanged -= value; } void OnOKClicked() { m_PageCount = m_PageCountField.value; m_OnMemorySizeChanged?.Invoke(m_PageCount); m_OkCancelElement.EnableOKButton(false); } } }