374 lines
18 KiB
C#
374 lines
18 KiB
C#
// <auto-generated>
|
|
// 이 파일은 UTKImageIconsGenerator에 의해 자동 생성되었습니다.
|
|
// 직접 수정하지 마세요. Tools > UTK > Image Icons Generator 메뉴로 재생성하세요.
|
|
// Source: Assets/Resources/UIToolkit/Images
|
|
// </auto-generated>
|
|
|
|
#nullable enable
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
|
|
namespace UVC.UIToolkit
|
|
{
|
|
/// <summary>
|
|
/// 이미지 아이콘 리소스 경로 상수 클래스입니다.
|
|
/// 총 41개의 아이콘을 포함합니다.
|
|
/// </summary>
|
|
/// <example>
|
|
/// <code>
|
|
/// // 상수로 리소스 경로 사용
|
|
/// string path = UTKImageIcons.Home;
|
|
///
|
|
/// // 동기 Sprite 로드 (캐싱됨)
|
|
/// Sprite sprite = UTKImageIcons.LoadSprite(UTKImageIcons.Home);
|
|
///
|
|
/// // 비동기 Sprite 로드 (UniTask, 캐싱됨)
|
|
/// Sprite? sprite = await UTKImageIcons.LoadSpriteAsync(UTKImageIcons.Home, cancellationToken);
|
|
///
|
|
/// // 동기 Texture2D 로드 (캐싱됨)
|
|
/// Texture2D texture = UTKImageIcons.LoadTexture(UTKImageIcons.Settings);
|
|
///
|
|
/// // 비동기 Texture2D 로드 (UniTask, 캐싱됨)
|
|
/// Texture2D? texture = await UTKImageIcons.LoadTextureAsync(UTKImageIcons.Settings, cancellationToken);
|
|
///
|
|
/// // 이름으로 Sprite 로드
|
|
/// Sprite icon = UTKImageIcons.LoadSpriteByName("home");
|
|
///
|
|
/// // 이름으로 비동기 Sprite 로드
|
|
/// Sprite? icon = await UTKImageIcons.LoadSpriteByNameAsync("home", cancellationToken);
|
|
///
|
|
/// // 이름으로 경로 조회
|
|
/// string iconPath = UTKImageIcons.GetPath("settings");
|
|
///
|
|
/// // 아이콘 존재 여부 확인
|
|
/// if (UTKImageIcons.HasIcon("search")) { }
|
|
///
|
|
/// // 전체 아이콘 이름 순회
|
|
/// foreach (var name in UTKImageIcons.GetAllIconNames()) { }
|
|
///
|
|
/// // 캐시 클리어
|
|
/// UTKImageIcons.ClearCache();
|
|
/// </code>
|
|
/// </example>
|
|
/// <remarks>
|
|
/// <para><b>UXML에서 사용하기:</b></para>
|
|
/// <para>UXML에서 이미지 아이콘을 사용하려면 USS에서 background-image를 설정합니다.</para>
|
|
/// <code>
|
|
/// /* USS 파일 */
|
|
/// .my-icon {
|
|
/// width: 24px;
|
|
/// height: 24px;
|
|
/// background-image: resource('UIToolkit/Images/icon_setting_22');
|
|
/// }
|
|
/// </code>
|
|
/// <code>
|
|
/// <!-- UXML 파일 -->
|
|
/// <VisualElement class="my-icon" />
|
|
/// </code>
|
|
/// <para><b>C# 코드에서 UXML 요소에 이미지 적용:</b></para>
|
|
/// <code>
|
|
/// var iconElement = root.Q<VisualElement>("my-icon");
|
|
/// var texture = UTKImageIcons.LoadTextureByName("icon_setting_22");
|
|
/// iconElement.style.backgroundImage = new StyleBackground(texture);
|
|
/// </code>
|
|
/// <para><b>Image 요소에서 사용:</b></para>
|
|
/// <code>
|
|
/// var image = root.Q<Image>("my-image");
|
|
/// image.sprite = UTKImageIcons.LoadSpriteByName("btn_close_16");
|
|
/// </code>
|
|
/// </remarks>
|
|
public static class UTKImageIcons
|
|
{
|
|
/// <summary>btn_cancel_64.png</summary>
|
|
public const string BtnCancel64 = "UIToolkit/Images/btn_cancel_64";
|
|
/// <summary>btn_close_16.png</summary>
|
|
public const string BtnClose16 = "UIToolkit/Images/btn_close_16";
|
|
/// <summary>btn_close_22.png</summary>
|
|
public const string BtnClose22 = "UIToolkit/Images/btn_close_22";
|
|
/// <summary>cursor_arc_32.png</summary>
|
|
public const string CursorArc32 = "UIToolkit/Images/cursor_arc_32";
|
|
/// <summary>cursor_ask_32.png</summary>
|
|
public const string CursorAsk32 = "UIToolkit/Images/cursor_ask_32";
|
|
/// <summary>cursor_context_menu_32.png</summary>
|
|
public const string CursorContextMenu32 = "UIToolkit/Images/cursor_context_menu_32";
|
|
/// <summary>cursor_copy_32.png</summary>
|
|
public const string CursorCopy32 = "UIToolkit/Images/cursor_copy_32";
|
|
/// <summary>cursor_default_black_32.png</summary>
|
|
public const string CursorDefaultBlack32 = "UIToolkit/Images/cursor_default_black_32";
|
|
/// <summary>cursor_default_white_32.png</summary>
|
|
public const string CursorDefaultWhite32 = "UIToolkit/Images/cursor_default_white_32";
|
|
/// <summary>cursor_export_32.png</summary>
|
|
public const string CursorExport32 = "UIToolkit/Images/cursor_export_32";
|
|
/// <summary>cursor_grabbing_32.png</summary>
|
|
public const string CursorGrabbing32 = "UIToolkit/Images/cursor_grabbing_32";
|
|
/// <summary>cursor_hand_32.png</summary>
|
|
public const string CursorHand32 = "UIToolkit/Images/cursor_hand_32";
|
|
/// <summary>cursor_link_32.png</summary>
|
|
public const string CursorLink32 = "UIToolkit/Images/cursor_link_32";
|
|
/// <summary>cursor_move_32.png</summary>
|
|
public const string CursorMove32 = "UIToolkit/Images/cursor_move_32";
|
|
/// <summary>cursor_node_32.png</summary>
|
|
public const string CursorNode32 = "UIToolkit/Images/cursor_node_32";
|
|
/// <summary>cursor_point_white_32.png</summary>
|
|
public const string CursorPointWhite32 = "UIToolkit/Images/cursor_point_white_32";
|
|
/// <summary>cursor_resize_col_32.png</summary>
|
|
public const string CursorResizeCol32 = "UIToolkit/Images/cursor_resize_col_32";
|
|
/// <summary>cursor_resize_down_32.png</summary>
|
|
public const string CursorResizeDown32 = "UIToolkit/Images/cursor_resize_down_32";
|
|
/// <summary>cursor_resize_h_32.png</summary>
|
|
public const string CursorResizeH32 = "UIToolkit/Images/cursor_resize_h_32";
|
|
/// <summary>cursor_resize_left_32.png</summary>
|
|
public const string CursorResizeLeft32 = "UIToolkit/Images/cursor_resize_left_32";
|
|
/// <summary>cursor_resize_right_32.png</summary>
|
|
public const string CursorResizeRight32 = "UIToolkit/Images/cursor_resize_right_32";
|
|
/// <summary>cursor_resize_row_32.png</summary>
|
|
public const string CursorResizeRow32 = "UIToolkit/Images/cursor_resize_row_32";
|
|
/// <summary>cursor_resize_tlbr_32.png</summary>
|
|
public const string CursorResizeTlbr32 = "UIToolkit/Images/cursor_resize_tlbr_32";
|
|
/// <summary>cursor_resize_trbl_32.png</summary>
|
|
public const string CursorResizeTrbl32 = "UIToolkit/Images/cursor_resize_trbl_32";
|
|
/// <summary>cursor_resize_up_32.png</summary>
|
|
public const string CursorResizeUp32 = "UIToolkit/Images/cursor_resize_up_32";
|
|
/// <summary>cursor_resize_v_32.png</summary>
|
|
public const string CursorResizeV32 = "UIToolkit/Images/cursor_resize_v_32";
|
|
/// <summary>cursor_rotate_bottom_left_32.png</summary>
|
|
public const string CursorRotateBottomLeft32 = "UIToolkit/Images/cursor_rotate_bottom_left_32";
|
|
/// <summary>cursor_rotate_bottom_right_32.png</summary>
|
|
public const string CursorRotateBottomRight32 = "UIToolkit/Images/cursor_rotate_bottom_right_32";
|
|
/// <summary>cursor_rotate_top_left_32.png</summary>
|
|
public const string CursorRotateTopLeft32 = "UIToolkit/Images/cursor_rotate_top_left_32";
|
|
/// <summary>cursor_rotate_top_right_32.png</summary>
|
|
public const string CursorRotateTopRight32 = "UIToolkit/Images/cursor_rotate_top_right_32";
|
|
/// <summary>cursor_select_32.png</summary>
|
|
public const string CursorSelect32 = "UIToolkit/Images/cursor_select_32";
|
|
/// <summary>cursor_wait_32.png</summary>
|
|
public const string CursorWait32 = "UIToolkit/Images/cursor_wait_32";
|
|
/// <summary>cursor_zoom_in_32.png</summary>
|
|
public const string CursorZoomIn32 = "UIToolkit/Images/cursor_zoom_in_32";
|
|
/// <summary>cursor_zoom_out_32.png</summary>
|
|
public const string CursorZoomOut32 = "UIToolkit/Images/cursor_zoom_out_32";
|
|
/// <summary>icon_down_20x16.png</summary>
|
|
public const string IconDown20x16 = "UIToolkit/Images/icon_down_20x16";
|
|
/// <summary>icon_down_22.png</summary>
|
|
public const string IconDown22 = "UIToolkit/Images/icon_down_22";
|
|
/// <summary>icon_eye_22x16.png</summary>
|
|
public const string IconEye22x16 = "UIToolkit/Images/icon_eye_22x16";
|
|
/// <summary>icon_eye_close_22x16.png</summary>
|
|
public const string IconEyeClose22x16 = "UIToolkit/Images/icon_eye_close_22x16";
|
|
/// <summary>icon_right_22.png</summary>
|
|
public const string IconRight22 = "UIToolkit/Images/icon_right_22";
|
|
/// <summary>icon_search_22x16.png</summary>
|
|
public const string IconSearch22x16 = "UIToolkit/Images/icon_search_22x16";
|
|
/// <summary>icon_setting_22.png</summary>
|
|
public const string IconSetting22 = "UIToolkit/Images/icon_setting_22";
|
|
|
|
#region Lookup & Load
|
|
|
|
private static readonly Dictionary<string, string> _pathsByName = new()
|
|
{
|
|
["btn_cancel_64"] = "UIToolkit/Images/btn_cancel_64",
|
|
["btn_close_16"] = "UIToolkit/Images/btn_close_16",
|
|
["btn_close_22"] = "UIToolkit/Images/btn_close_22",
|
|
["cursor_arc_32"] = "UIToolkit/Images/cursor_arc_32",
|
|
["cursor_ask_32"] = "UIToolkit/Images/cursor_ask_32",
|
|
["cursor_context_menu_32"] = "UIToolkit/Images/cursor_context_menu_32",
|
|
["cursor_copy_32"] = "UIToolkit/Images/cursor_copy_32",
|
|
["cursor_default_black_32"] = "UIToolkit/Images/cursor_default_black_32",
|
|
["cursor_default_white_32"] = "UIToolkit/Images/cursor_default_white_32",
|
|
["cursor_export_32"] = "UIToolkit/Images/cursor_export_32",
|
|
["cursor_grabbing_32"] = "UIToolkit/Images/cursor_grabbing_32",
|
|
["cursor_hand_32"] = "UIToolkit/Images/cursor_hand_32",
|
|
["cursor_link_32"] = "UIToolkit/Images/cursor_link_32",
|
|
["cursor_move_32"] = "UIToolkit/Images/cursor_move_32",
|
|
["cursor_node_32"] = "UIToolkit/Images/cursor_node_32",
|
|
["cursor_point_white_32"] = "UIToolkit/Images/cursor_point_white_32",
|
|
["cursor_resize_col_32"] = "UIToolkit/Images/cursor_resize_col_32",
|
|
["cursor_resize_down_32"] = "UIToolkit/Images/cursor_resize_down_32",
|
|
["cursor_resize_h_32"] = "UIToolkit/Images/cursor_resize_h_32",
|
|
["cursor_resize_left_32"] = "UIToolkit/Images/cursor_resize_left_32",
|
|
["cursor_resize_right_32"] = "UIToolkit/Images/cursor_resize_right_32",
|
|
["cursor_resize_row_32"] = "UIToolkit/Images/cursor_resize_row_32",
|
|
["cursor_resize_tlbr_32"] = "UIToolkit/Images/cursor_resize_tlbr_32",
|
|
["cursor_resize_trbl_32"] = "UIToolkit/Images/cursor_resize_trbl_32",
|
|
["cursor_resize_up_32"] = "UIToolkit/Images/cursor_resize_up_32",
|
|
["cursor_resize_v_32"] = "UIToolkit/Images/cursor_resize_v_32",
|
|
["cursor_rotate_bottom_left_32"] = "UIToolkit/Images/cursor_rotate_bottom_left_32",
|
|
["cursor_rotate_bottom_right_32"] = "UIToolkit/Images/cursor_rotate_bottom_right_32",
|
|
["cursor_rotate_top_left_32"] = "UIToolkit/Images/cursor_rotate_top_left_32",
|
|
["cursor_rotate_top_right_32"] = "UIToolkit/Images/cursor_rotate_top_right_32",
|
|
["cursor_select_32"] = "UIToolkit/Images/cursor_select_32",
|
|
["cursor_wait_32"] = "UIToolkit/Images/cursor_wait_32",
|
|
["cursor_zoom_in_32"] = "UIToolkit/Images/cursor_zoom_in_32",
|
|
["cursor_zoom_out_32"] = "UIToolkit/Images/cursor_zoom_out_32",
|
|
["icon_down_20x16"] = "UIToolkit/Images/icon_down_20x16",
|
|
["icon_down_22"] = "UIToolkit/Images/icon_down_22",
|
|
["icon_eye_22x16"] = "UIToolkit/Images/icon_eye_22x16",
|
|
["icon_eye_close_22x16"] = "UIToolkit/Images/icon_eye_close_22x16",
|
|
["icon_right_22"] = "UIToolkit/Images/icon_right_22",
|
|
["icon_search_22x16"] = "UIToolkit/Images/icon_search_22x16",
|
|
["icon_setting_22"] = "UIToolkit/Images/icon_setting_22",
|
|
};
|
|
|
|
private static readonly Dictionary<string, Sprite?> _spriteCache = new();
|
|
private static readonly Dictionary<string, Texture2D?> _textureCache = new();
|
|
|
|
/// <summary>
|
|
/// 아이콘 이름으로 리소스 경로를 조회합니다.
|
|
/// </summary>
|
|
/// <param name="iconName">아이콘 파일명 (확장자 제외)</param>
|
|
/// <returns>리소스 경로, 없으면 빈 문자열</returns>
|
|
public static string GetPath(string iconName)
|
|
{
|
|
return _pathsByName.TryGetValue(iconName, out var path) ? path : string.Empty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 아이콘이 존재하는지 확인합니다.
|
|
/// </summary>
|
|
public static bool HasIcon(string iconName) => _pathsByName.ContainsKey(iconName);
|
|
|
|
/// <summary>
|
|
/// 리소스 경로로 아이콘 이름을 조회합니다.
|
|
/// </summary>
|
|
/// <param name="resourcePath">리소스 경로 (예: Icons/Home)</param>
|
|
/// <returns>아이콘 이름, 없으면 빈 문자열</returns>
|
|
public static string GetIconName(string resourcePath)
|
|
{
|
|
foreach (var kvp in _pathsByName)
|
|
{
|
|
if (kvp.Value == resourcePath) return kvp.Key;
|
|
}
|
|
return string.Empty;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 모든 아이콘 이름 목록을 반환합니다.
|
|
/// </summary>
|
|
public static IEnumerable<string> GetAllIconNames() => _pathsByName.Keys;
|
|
|
|
/// <summary>
|
|
/// 전체 아이콘 수를 반환합니다.
|
|
/// </summary>
|
|
public static int Count => 41;
|
|
|
|
/// <summary>
|
|
/// 리소스 경로로 Sprite를 동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="resourcePath">리소스 경로 (예: Icons/Home)</param>
|
|
public static Sprite? LoadSprite(string resourcePath)
|
|
{
|
|
if (_spriteCache.TryGetValue(resourcePath, out var cached))
|
|
return cached;
|
|
|
|
var sprite = Resources.Load<Sprite>(resourcePath);
|
|
_spriteCache[resourcePath] = sprite;
|
|
return sprite;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 리소스 경로로 Sprite를 비동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="resourcePath">리소스 경로 (예: Icons/Home)</param>
|
|
/// <param name="ct">취소 토큰</param>
|
|
public static async UniTask<Sprite?> LoadSpriteAsync(string resourcePath, CancellationToken ct = default)
|
|
{
|
|
if (_spriteCache.TryGetValue(resourcePath, out var cached))
|
|
return cached;
|
|
|
|
var request = Resources.LoadAsync<Sprite>(resourcePath);
|
|
await request.ToUniTask(cancellationToken: ct);
|
|
|
|
var sprite = request.asset as Sprite;
|
|
_spriteCache[resourcePath] = sprite;
|
|
return sprite;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 리소스 경로로 Texture2D를 동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="resourcePath">리소스 경로 (예: Icons/Home)</param>
|
|
public static Texture2D? LoadTexture(string resourcePath)
|
|
{
|
|
if (_textureCache.TryGetValue(resourcePath, out var cached))
|
|
return cached;
|
|
|
|
var texture = Resources.Load<Texture2D>(resourcePath);
|
|
_textureCache[resourcePath] = texture;
|
|
return texture;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 리소스 경로로 Texture2D를 비동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="resourcePath">리소스 경로 (예: Icons/Home)</param>
|
|
/// <param name="ct">취소 토큰</param>
|
|
public static async UniTask<Texture2D?> LoadTextureAsync(string resourcePath, CancellationToken ct = default)
|
|
{
|
|
if (_textureCache.TryGetValue(resourcePath, out var cached))
|
|
return cached;
|
|
|
|
var request = Resources.LoadAsync<Texture2D>(resourcePath);
|
|
await request.ToUniTask(cancellationToken: ct);
|
|
|
|
var texture = request.asset as Texture2D;
|
|
_textureCache[resourcePath] = texture;
|
|
return texture;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 아이콘 이름으로 Sprite를 동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="iconName">아이콘 파일명 (확장자 제외)</param>
|
|
public static Sprite? LoadSpriteByName(string iconName)
|
|
{
|
|
var path = GetPath(iconName);
|
|
return string.IsNullOrEmpty(path) ? null : LoadSprite(path);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 아이콘 이름으로 Sprite를 비동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="iconName">아이콘 파일명 (확장자 제외)</param>
|
|
/// <param name="ct">취소 토큰</param>
|
|
public static async UniTask<Sprite?> LoadSpriteByNameAsync(string iconName, CancellationToken ct = default)
|
|
{
|
|
var path = GetPath(iconName);
|
|
return string.IsNullOrEmpty(path) ? null : await LoadSpriteAsync(path, ct);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 아이콘 이름으로 Texture2D를 동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="iconName">아이콘 파일명 (확장자 제외)</param>
|
|
public static Texture2D? LoadTextureByName(string iconName)
|
|
{
|
|
var path = GetPath(iconName);
|
|
return string.IsNullOrEmpty(path) ? null : LoadTexture(path);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 아이콘 이름으로 Texture2D를 비동기로 로드합니다. (캐싱됨)
|
|
/// </summary>
|
|
/// <param name="iconName">아이콘 파일명 (확장자 제외)</param>
|
|
/// <param name="ct">취소 토큰</param>
|
|
public static async UniTask<Texture2D?> LoadTextureByNameAsync(string iconName, CancellationToken ct = default)
|
|
{
|
|
var path = GetPath(iconName);
|
|
return string.IsNullOrEmpty(path) ? null : await LoadTextureAsync(path, ct);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 캐시를 클리어합니다.
|
|
/// </summary>
|
|
public static void ClearCache()
|
|
{
|
|
_spriteCache.Clear();
|
|
_textureCache.Clear();
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|