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
}