Files
Cielonos/Assets/OtherPlugins/HUD-Navigation-System/Scripts/Utilities/Editor/HNSEditorIcons.cs
SoulliesOfficial ef7b479712 initial
2025-11-25 08:19:33 -05:00

62 lines
1.5 KiB
C#

using System.Linq;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
#endif
using SickscoreGames;
namespace SickscoreGames.HUDNavigationSystem
{
[InitializeOnLoad]
public class HNSEditorIcons
{
#region Variables
private static Texture2D texturePanel;
#endregion
#region Main Methods
static HNSEditorIcons ()
{
EditorApplication.hierarchyWindowItemOnGUI += HNSIcon;
EditorApplication.hierarchyWindowItemOnGUI += HNSCanvasIcon;
}
static void HNSIcon (int instanceId, Rect selectionRect)
{
CheckInstance<HUDNavigationSystem> (instanceId, selectionRect, "hns_icon");
}
static void HNSCanvasIcon (int instanceId, Rect selectionRect)
{
CheckInstance<HUDNavigationCanvas> (instanceId, selectionRect, "hns_icon_canvas");
}
#endregion
#region Utility Methods
private static void CheckInstance<T> (int instanceId, Rect selectionRect, string iconName) where T : UnityEngine.Object
{
GameObject go = EditorUtility.InstanceIDToObject(instanceId) as GameObject;
if (go == null) return;
if (go.GetComponent<T> () != null)
DrawIcon(iconName, selectionRect);
}
private static void DrawIcon (string name, Rect rect)
{
Rect texRect = new Rect(rect.x + rect.width - 16f, rect.y, 16f, 16f);
Texture2D tex = (Texture2D)Resources.Load("Textures/Icons/" + name);
if (tex != null)
GUI.DrawTexture (texRect, tex);
}
#endregion
}
}