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);
        }
Пример #2
0
        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);
        }