internal static void InitializeSettings(string assetGuid) { settingsGuid = assetGuid; settingsPath = AssetDatabase.GUIDToAssetPath(assetGuid); //try to get proper settings asset from provided guid var settings = AssetDatabase.LoadAssetAtPath <ToolboxEditorSettings>(settingsPath); if (settings == null) { ToolboxEditorLog.KitInitializationWarning(settingsType); return; } Settings = settings; Settings.AddOnSettingsUpdatedListener(() => { //perform separated data models update ToolboxDrawerUtility.PerformData(); ToolboxProjectUtility.PerformData(); ToolboxHierarchyUtility.PerformData(); //perform additional repaint to update GUI ToolboxEditorProject.RepaintProjectOverlay(); ToolboxEditorHierarchy.RepaintHierarchyOverlay(); }); //initialize core functionalities ToolboxDrawerUtility.PerformData(Settings); ToolboxProjectUtility.PerformData(Settings); ToolboxHierarchyUtility.PerformData(Settings); }
private static void OnItemCallback(string guid, Rect rect) { //ignore drawing if ToolboxEditorProject functionalites are not allowed if (!ToolboxProjectUtility.ToolboxProjectAllowed) { return; } var path = AssetDatabase.GUIDToAssetPath(guid); //try to get icon for this folder if (!ToolboxProjectUtility.TryGetFolderData(path, out FolderData data)) { return; } if (!string.IsNullOrEmpty(data.Tooltip)) { //create additional tooltip to mark custom folder EditorGUI.LabelField(rect, new GUIContent(string.Empty, data.Tooltip)); } Texture icon; //adjust rect for icon depending on current view and handled texture if (rect.width > rect.height) { icon = data.SmallIcon; rect = GetSmallIconRect(rect); } else { icon = data.Icon; rect = GetLargeIconRect(rect, true); } if (icon == null) { return; } //finally, draw retrieved icon GUI.DrawTexture(rect, icon, ScaleMode.ScaleToFit, true); }