32 lines
1.1 KiB
C#
32 lines
1.1 KiB
C#
using UnityEngine;
|
||
|
||
namespace BaseGames.UI
|
||
{
|
||
/// <summary>
|
||
/// 输入设备图标集 SO(架构 10_UIModule §12)。
|
||
/// 存储一套设备(键鼠 or 手柄)所有按键对应的 Sprite。
|
||
/// 由 InputDeviceIconSwitcher 根据当前设备选择正确的图标集。
|
||
/// </summary>
|
||
[CreateAssetMenu(menuName = "BaseGames/UI/Input Device Icon Set", fileName = "InputDeviceIconSetSO")]
|
||
public class InputDeviceIconSetSO : ScriptableObject
|
||
{
|
||
[System.Serializable]
|
||
public struct IconEntry
|
||
{
|
||
public string BindingPath; // InputSystem binding path,e.g. "<Keyboard>/space"
|
||
public Sprite Icon;
|
||
}
|
||
|
||
[SerializeField] private IconEntry[] _entries;
|
||
|
||
/// <summary>根据 binding path 查找对应图标;未找到返回 null。</summary>
|
||
public Sprite GetIcon(string bindingPath)
|
||
{
|
||
if (_entries == null) return null;
|
||
foreach (var entry in _entries)
|
||
if (entry.BindingPath == bindingPath) return entry.Icon;
|
||
return null;
|
||
}
|
||
}
|
||
}
|