#if ENABLE_ADDRESSABLE_PROFILER && UNITY_2022_2_OR_NEWER using System; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UIElements; namespace UnityEditor.AddressableAssets.Diagnostics { internal static class ProfilerTemplates { private const string k_UxmlResourcePath = "Packages/com.unity.addressables/Editor/Diagnostics/Profiler/UXML"; private static string MissingReportPath => k_UxmlResourcePath + "/MissingReport.uxml"; public static VisualTreeAsset MissingReport => GetTemplate(MissingReportPath); private static string TreeViewPanePath => k_UxmlResourcePath + "/TreeViewPane.uxml"; public static VisualTreeAsset TreeViewPane => GetTemplate(TreeViewPanePath); private static string DetailsPanePath => k_UxmlResourcePath + "/InspectorPane.uxml"; public static VisualTreeAsset DetailsPane => GetTemplate(DetailsPanePath); private static string HelpDisplayPath => k_UxmlResourcePath + "/HelpDisplay.uxml"; public static VisualTreeAsset HelpDisplay => GetTemplate(HelpDisplayPath); private static Dictionary m_VisualTemplatesMap = new Dictionary(); private static VisualTreeAsset GetTemplate(string templateName) { VisualTreeAsset template; if (m_VisualTemplatesMap.TryGetValue(templateName, out template)) return template; template = AssetDatabase.LoadAssetAtPath(templateName); if (template != null) { m_VisualTemplatesMap.Add(templateName, template); return template; } StringBuilder error = new StringBuilder($"Could not find template of path {templateName}."); Debug.LogException(new ArgumentOutOfRangeException(error.ToString())); return null; } } } #endif