namespace GFramework.Godot.system; /// /// 输入动作类,表示游戏中的一种输入行为 /// public class InputAction { /// /// 动作名称 /// public string Name { get; } /// /// 动作类型 /// public InputActionType ActionType { get; } /// /// 默认按键绑定 /// public string[] DefaultBindings { get; } /// /// 当前按键绑定 /// public string[] CurrentBindings { get; private set; } /// /// 构造函数 /// /// 动作名称 /// 动作类型 /// 默认按键绑定 public InputAction(string name, InputActionType actionType, params string[] defaultBindings) { Name = name ?? throw new ArgumentNullException(nameof(name)); ActionType = actionType; DefaultBindings = defaultBindings ?? throw new ArgumentNullException(nameof(defaultBindings)); CurrentBindings = (string[])defaultBindings.Clone(); } /// /// 重置为默认按键绑定 /// public void ResetToDefault() { CurrentBindings = (string[])DefaultBindings.Clone(); } /// /// 设置新的按键绑定 /// /// 新的按键绑定 public void SetBindings(params string[] bindings) { CurrentBindings = bindings ?? throw new ArgumentNullException(nameof(bindings)); } } /// /// 输入动作类型枚举 /// public enum InputActionType { /// /// 按钮类型,如跳跃、射击等 /// Button, /// /// 轴类型,如移动、视角控制等 /// Axis, /// /// 向量类型,如二维移动控制 /// Vector }