をいただければ幸いです。
コントローラーが自動的に検出されます。物理コントローラーはGCControllerオブジェクトで表され、GCGamepad、extendedGamepadなどのコントローラーコントロールを「プロファイル」します。各コントローラーに登録されているコントロールを確認する必要があります。
「あなたのアプリは、起動し、自動的に接続されたコントローラのリストを作成し、 オペレーティングシステムを終了した後:Discovering And Connecting Controllersのドキュメントから。 に接続されたすべてのコントローラのGCControllerオブジェクトの配列 を取得するには、コントローラクラスのメソッドを呼び出します。」りんごsample code彼らは.GCControllerDidConnect通知を登録してのセットアップ機能にGCControllerインスタンスとして通知オブジェクトをキャストに
をコントロールが存在する場合は、コントローラーを解析し、対応するハンドラーメソッドを割り当てます。
NotificationCenter.default.addObserver(self, selector: #selector(GameViewController.handleControllerDidConnectNotification(_:)), name: .GCControllerDidConnect, object: nil)
@objc func handleControllerDidConnectNotification(_ notification: NSNotification) {
let gameController = notification.object as! GCController
registerCharacterMovementEvents(gameController)
}
private func registerCharacterMovementEvents(_ gameController: GCController) {
//…
// Gamepad D-pad
if let gamepad = gameController.gamepad {
gamepad.dpad.valueChangedHandler = movementHandler
}
// Extended gamepad left thumbstick
if let extendedGamepad = gameController.extendedGamepad {
extendedGamepad.leftThumbstick.valueChangedHandler = movementHandler
}
//…
}