SteamController 1.3

SteamController 1.3

Jesús A. Álvarez 维护。



SteamController

为 iOS 和 tvOS 提供内置支持 Steam 控制器。

有关如何使用蓝牙低功耗模式下的 Steam 控制器的信息,请参阅 `Steam Controller BLE`。

示例

要运行示例项目,克隆仓库,并运行 SteamControllerTestApp 目标。

Screenshot

在示例应用程序中,开启您的控制器(在 BLE 或 BLE 配对模式下)并点击扫描。连接的控制器将出现在列表中,UI 将反映控制器的状态。点击列表中的控制器将打开该控制器的设置视图,在那里您还可以查看电池级别,并更改其配置(见上图)。

要求

  • iOS 12 或更高版本(未测试早期版本)。
  • 带有 BLE 固件 的 Steam 控制器。
  • 支持使用 GameController 框架的 MFi 控制器的游戏。
  • 从 iOS 13 开始,您的应用程序的 Info.plist 需要一个 NSBluetoothAlwaysUsageDescription 键,其中包含蓝牙使用说明。

安装

CocoaPods

CocoaPods 是一个 Cocoa 项目的依赖关系管理器。您可以使用以下命令进行安装

$ gem install cocoapods

要使用 CocoaPods 将 SteamController 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

pod 'SteamController'

然后,运行以下命令

$ pod install

Carthage

Carthage 是一个去中心化依赖关系管理器,它构建您的依赖关系并提供二进制框架。

您可以使用以下命令使用 Homebrew 安装 Carthage

$ brew update
$ brew install carthage

要使用 Carthage 将 SteamController 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "zydeco/SteamController"

运行 carthage update 来构建框架,并将构建的 SteamController.framework 拖入您的 Xcode 项目。

使用方法

一切都应该像使用 MFi 控制器一样工作。根据您游戏的工作方式,您可能根本不需要做出任何更改。

  • #import <SteamController/SteamController.h>.
  • 要监听 Steam 控制器,可以进行以下操作
    • 当您的应用程序启动时,调用 [SteamControllerManager listenForConnections](使用私有 IOKit API)。
    • 当您想要扫描控制器时,调用 [[SteamControllerManager sharedManager] scanForControllers]
  • 与原生控制器一样,框架将发布 GCControllerDidConnectNotificationGCControllerDidDisconnectNotification
  • 连接的 Steam 控制器将在 [GCController controllers] 中返回。
  • Steam 控制器是 GCController 的子类 (SteamController),实现了 extendedGamepad 配置文件。
  • 核心按钮映射到苹果的 MFi 扩展游戏手柄配置文件。
  • 触控板和摇杆可以映射到 D-pad 和摇杆。(见下文)
  • 触控板可以设置为需要点击输入(默认)或不。

按钮映射

  • 模拟摇杆:L-拇指摇杆
  • 左侧触控板:D方向键 (需要点击)
  • 右侧触控板:R-拇指摇杆 / C按钮 (需要点击)
  • A, B, X, Y:等效
  • 边框/肩部:L1 / R1
  • 扳机:L2 / R2
  • 抓握按钮:L3 / R3
  • Steam按钮:暂停处理程序和通过steamButtonCombinationHandler的组合
  • 模拟摇杆点击:L3 (默认)
  • 触控板点击:L3 / R3 (当点击不是输入所需时)
  • 后退:选项按钮
  • 前景:菜单按钮
向后兼容的另一视图映射

由于选项和菜单按钮是从iOS 13开始添加的,因此后退和前景也被添加为GCExtendedGamepad的类扩展。

  • 后退:steamBackButton
  • 前景:steamForwardButton

控制器配置

SteamController类有一些额外的属性来定制其配置。有关更多信息,请参阅文档。这些选项在示例应用程序中作为GUI选项可用。

许可

SteamController框架可在MIT许可下使用。有关更多信息,请参阅LICENSE文件。