feat(input): 添加 IInputIconService 接口及 InputDeviceType 枚举以支持按键图标管理

This commit is contained in:
2026-06-10 14:13:34 +08:00
parent 956a1dc5ab
commit 32566020c7
4 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
using System;
using UnityEngine;
namespace BaseGames.UI
{
/// <summary>
/// 按键图标服务接口。
/// 根据当前输入设备和玩家实际绑定(含改键),返回对应的按键 Sprite。
/// 通过 ServiceLocator 注册/查找,与 UI 层完全解耦。
/// </summary>
public interface IInputIconService
{
/// <summary>当前活跃输入设备类型。</summary>
InputDeviceType CurrentDevice { get; }
/// <summary>
/// 查询指定 Action如 "Interact")在当前设备上的按键图标。
/// 若找不到图标(资源未配置)返回 null。
/// </summary>
Sprite GetActionIcon(string actionName);
/// <summary>
/// 查询指定 Action 在当前设备上的有效绑定路径(含改键后的路径)。
/// 例如:"&lt;Keyboard&gt;/e"、"&lt;Gamepad&gt;/buttonSouth"。
/// </summary>
string GetActionEffectivePath(string actionName);
/// <summary>
/// 根据固定绑定路径(如 "&lt;Keyboard&gt;/space")在当前图标集中查找图标。
/// 不受改键影响,适合装饰性按键说明。找不到时返回 null。
/// </summary>
Sprite GetPathIcon(string bindingPath);
/// <summary>
/// 当设备切换或玩家改键后触发。
/// 订阅此事件的 UI 组件应在回调中刷新图标显示。
/// </summary>
event Action OnIconSetChanged;
}
}