Input (输入)

Steam 输入 API 是一个基于操作的灵活 API,支持所有主要控制器类型——Xbox、PlayStation、Nintendo Switch Pro 和 Steam 控制器。

1. 初始化输入接口

pub fn init(&self, explicitly_call_run_frame: bool)

在开始使用此接口时必须调用 Init。 如果调用了 explicitly_call_run_frame,则需要在每一帧手动调用 RunFrame, 否则在调用 SteamAPI_RunCallbacks() 时会更新 Steam Input。

2. 刷新当前帧

pub fn run_frame(&self)

将 API 状态与可用的最新 Steam 控制器输入同步。

由 SteamAPI_RunCallbacks 自动执行,但是您可以在读取控制器状态之前直接调用此函数,以获得可能的最低延迟。

注意:必须在调用 GetConnectedControllers 以返回任何句柄之前调用此方法。

3. 获取已连接的控制器

pub fn get_connected_controllers(&self) -> Vec<InputHandle_t>

返回当前连接的控制器列表。

4. 获取已连接的控制器分片

pub fn get_connected_controllers_slice(
    &self,
    controllers: impl AsMut<[InputHandle_t]>
) -> usize

返回当前连接的控制器列表及其数量,无需分配。

5. 查找操作集句柄

pub fn get_action_set_handle(
    &self,
    action_set_name: &str
) -> InputActionSetHandle_t

返回指定控制器的关联 ControllerActionSet 句柄。

查找操作集句柄。 最好在启动时调用一次,并存储句柄供所有未来 API 调用使用。

6. 激活操作集句柄

pub fn activate_action_set_handle(
    &self,
    input_handle: InputHandle_t,
    action_set_handle: InputActionSetHandle_t
)

将控制器重新配置为使用指定的动作集。此操作开销低,可以安全地反复调用。

7. 获取数字操作句柄

pub fn get_digital_action_handle(
    &self,
    action_name: &str
) -> InputDigitalActionHandle_t

获取指定的数字操作的句柄。

8. 获取模拟操作句柄

pub fn get_analog_action_handle(
    &self,
    action_name: &str
) -> InputAnalogActionHandle_t

获得指定的模拟操作的句柄。

9. 获取数字操作数据

pub fn get_digital_action_data(
    &self,
    input_handle: InputHandle_t,
    action_handle: InputDigitalActionHandle_t
) -> InputDigitalActionData_t

返回所提供的数字游戏操作的当前状态。

10. 获取模拟操作数据

pub fn get_analog_action_data(
    &self,
    input_handle: InputHandle_t,
    action_handle: InputAnalogActionHandle_t
) -> InputAnalogActionData_t

返回所提供的模拟游戏操作的当前状态。

11. 获取移动数据

pub fn get_motion_data(&self, input_handle: InputHandle_t) -> InputMotionData_t

返回指定控制器的原始运动数据。

12. 关闭输入接口

pub fn shutdown(&self)

在结束使用此接口时必须调用 Shutdown