|
|
|
|
#if UNITY_EDITOR
|
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using UnityEditor;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace BgTools.Utils
|
|
|
|
|
{
|
|
|
|
|
public class ImageManager
|
|
|
|
|
{
|
|
|
|
|
// Keep this ID unique
|
|
|
|
|
private static readonly string ID = "[PlayerPrefsEditor] com.bgtools.playerprefseditor";
|
|
|
|
|
|
|
|
|
|
private static string imageManagerPath;
|
|
|
|
|
private static string GetAssetDir()
|
|
|
|
|
{
|
|
|
|
|
if (imageManagerPath != null)
|
|
|
|
|
{
|
|
|
|
|
return imageManagerPath;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (string assetGuid in AssetDatabase.FindAssets("ImageManager"))
|
|
|
|
|
{
|
|
|
|
|
string assetPath = AssetDatabase.GUIDToAssetPath(assetGuid);
|
|
|
|
|
string fileName = Path.GetFileName(assetPath);
|
|
|
|
|
|
|
|
|
|
if (fileName.Equals("ImageManager.cs"))
|
|
|
|
|
{
|
|
|
|
|
// Check ID if it's the correct ImageManager
|
|
|
|
|
if (File.ReadLines(Path.GetFullPath(assetPath)).Any(line => line.Contains(ID)))
|
|
|
|
|
{
|
|
|
|
|
imageManagerPath = Path.GetDirectoryName(assetPath) + Path.DirectorySeparatorChar;
|
|
|
|
|
return imageManagerPath;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
throw new Exception("Cannot find ImageManager.cs in the project. Are sure all the files in place?");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static Texture2D GetOsIcon()
|
|
|
|
|
{
|
|
|
|
|
#if UNITY_EDITOR_WIN
|
|
|
|
|
return OsWinIcon;
|
|
|
|
|
#elif UNITY_EDITOR_OSX
|
|
|
|
|
return OsMacIcon;
|
|
|
|
|
#elif UNITY_EDITOR_LINUX
|
|
|
|
|
return OsLinuxIcon;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D osLinuxIcon;
|
|
|
|
|
public static Texture2D OsLinuxIcon
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (osLinuxIcon == null)
|
|
|
|
|
{
|
|
|
|
|
osLinuxIcon = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "os_linux_icon.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return osLinuxIcon;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D osWinIcon;
|
|
|
|
|
public static Texture2D OsWinIcon
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (osWinIcon == null)
|
|
|
|
|
{
|
|
|
|
|
osWinIcon = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "os_win_icon.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return osWinIcon;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D osMacIcon;
|
|
|
|
|
public static Texture2D OsMacIcon
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (osMacIcon == null)
|
|
|
|
|
{
|
|
|
|
|
osMacIcon = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "os_mac_icon.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return osMacIcon;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static GUIContent[] spinWheelIcons;
|
|
|
|
|
public static GUIContent[] SpinWheelIcons
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if(spinWheelIcons == null)
|
|
|
|
|
{
|
|
|
|
|
spinWheelIcons = new GUIContent[12];
|
|
|
|
|
for (int i = 0; i < 12; i++)
|
|
|
|
|
spinWheelIcons[i] = EditorGUIUtility.IconContent("WaitSpin" + i.ToString("00"));
|
|
|
|
|
}
|
|
|
|
|
return spinWheelIcons;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D refresh;
|
|
|
|
|
public static Texture2D Refresh
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (refresh == null)
|
|
|
|
|
{
|
|
|
|
|
refresh = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "refresh.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return refresh;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D trash;
|
|
|
|
|
public static Texture2D Trash
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (trash == null)
|
|
|
|
|
{
|
|
|
|
|
trash = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "trash.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return trash;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D exclamation;
|
|
|
|
|
public static Texture2D Exclamation
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if(exclamation == null)
|
|
|
|
|
{
|
|
|
|
|
exclamation = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "exclamation.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return exclamation;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D info;
|
|
|
|
|
public static Texture2D Info
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (info == null)
|
|
|
|
|
{
|
|
|
|
|
info = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "info.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return info;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D watching;
|
|
|
|
|
public static Texture2D Watching
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if(watching == null)
|
|
|
|
|
{
|
|
|
|
|
watching = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "watching.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return watching;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D notWatching;
|
|
|
|
|
public static Texture2D NotWatching
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (notWatching == null)
|
|
|
|
|
{
|
|
|
|
|
notWatching = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "not_watching.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return notWatching;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D sortDisabled;
|
|
|
|
|
public static Texture2D SortDisabled
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (sortDisabled == null)
|
|
|
|
|
{
|
|
|
|
|
sortDisabled = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "sort.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return sortDisabled;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D sortAsscending;
|
|
|
|
|
public static Texture2D SortAsscending
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (sortAsscending == null)
|
|
|
|
|
{
|
|
|
|
|
sortAsscending = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "sort_asc.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return sortAsscending;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static Texture2D sortDescending;
|
|
|
|
|
public static Texture2D SortDescending
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (sortDescending == null)
|
|
|
|
|
{
|
|
|
|
|
sortDescending = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "sort_desc.png", typeof(Texture2D));
|
|
|
|
|
}
|
|
|
|
|
return sortDescending;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|