|
|
- #if UNITY_EDITOR
- using UnityEngine;
- using UnityEditor;
- using System;
- using System.IO;
- using System.Collections.Generic;
-
- namespace ProGrids
- {
- [InitializeOnLoad]
- public static class pg_IconUtility
- {
- const string ICON_FOLDER_PATH = "ProGridsToggles";
- private static string iconFolderPath = "Assets/ProCore/ProGrids/GUI/ProGridsToggles/";
-
- static pg_IconUtility()
- {
- if(!Directory.Exists(iconFolderPath))
- {
- string folder = FindFolder(ICON_FOLDER_PATH);
-
- if(Directory.Exists(folder))
- iconFolderPath = folder;
- }
- }
-
- private static string FindFolder(string folder)
- {
- #if !UNITY_WEBPLAYER
- string single = folder.Replace("\\", "/").Substring(folder.LastIndexOf('/') + 1);
-
- string[] matches = Directory.GetDirectories("Assets/", single, SearchOption.AllDirectories);
-
- foreach(string str in matches)
- {
- string path = str.Replace("\\", "/");
-
- if(path.Contains(folder))
- {
- if(!path.EndsWith("/"))
- path += "/";
-
- return path;
- }
- }
- #endif
- Debug.LogError("Could not locate ProGrids/GUI/ProGridsToggles folder. The ProGrids folder may be moved, but the contents of ProGrids must remain unmodified.");
-
- return "";
- }
-
- public static Texture2D LoadIcon(string iconName)
- {
- string iconPath = string.Format("{0}{1}", iconFolderPath, iconName);
-
- if(!File.Exists(iconPath))
- {
- Debug.LogError("ProGrids failed to locate menu image: " + iconName + ".\nThis can happen if the GUI folder is moved or deleted. Deleting and re-importing ProGrids will fix this error.");
- return (Texture2D) null;
- }
-
- return LoadAssetAtPath<Texture2D>(iconPath);
- }
-
- static T LoadAssetAtPath<T>(string path) where T : UnityEngine.Object
- {
- return (T) AssetDatabase.LoadAssetAtPath(path, typeof(T));
- }
- }
- }
- #endif
|