次の方法で共有


RawGameController クラス

定義

任意の種類のゲーム コントローラーを表します。

public ref class RawGameController sealed : IGameControllerBatteryInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RawGameController final : IGameControllerBatteryInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RawGameController : IGameControllerBatteryInfo
Public NotInheritable Class RawGameController
Implements IGameControllerBatteryInfo
継承
Object Platform::Object IInspectable RawGameController
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 Creators Update (10.0.15063.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v4.0 で導入)

次のコード スニペットは、 RawGameController.RawGameControllers リストをループ処理し、各 RawGameController をベクターに追加する方法を示しています。 状況はいつでも変化する可能性があるため、ベクターにロックを設定する必要があります (たとえば、コントローラーが切断または再接続される可能性があります)。

#include <concrt.h>
#include <winrt/Windows.Gaming.Input.h>
using namespace winrt;
using namespace Windows::Gaming::Input;
...
std::vector<RawGameController> myRawGameControllers;
concurrency::critical_section myLock{};

for (auto const& rawGameController : RawGameController::RawGameControllers())
{
    // Test whether the raw game controller is already in myRawGameControllers; if it isn't, add it.
    concurrency::critical_section::scoped_lock lock{ myLock };
    auto it{ std::find(begin(myRawGameControllers), end(myRawGameControllers), rawGameController) };

    if (it == end(myRawGameControllers))
    {
        // This code assumes that you're interested in all raw game controllers.
        myRawGameControllers.push_back(rawGameController);
    }
}

注釈

RawGameController クラスのインスタンスを直接作成することはできません。代わりに、クラスのインスタンスは、接続されているすべてのゲーム コントローラーを一覧表示する RawGameController.RawGameControllers プロパティまたは RawGameController.RawGameControllerAdded イベントを通じて取得されます。

RawGameController で使用できるすべての入力は、名前のないボタン、スイッチ、軸の単純な配列として公開されます。 このクラスを使用すると、ユーザーが使用しているコントローラーの種類に関係なく、カスタム入力マッピングを作成できます。

これらの配列を自分で作成し、 GetCurrentReading を使用して入力して、ボタン、スイッチ、軸の状態を決定する必要があります。 詳細については、その関数のドキュメントを参照してください。

RawGameController クラスの使用方法については、「Raw ゲーム コントローラー」を参照してください。

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
1709 16299 DisplayName
1709 16299 NonRoamableId
1709 16299 SimpleHapticsControllers

プロパティ

AxisCount

生のゲーム コントローラー上の軸の数。

ButtonCount

生のゲーム コントローラー上のボタンの数。

DisplayName

ハードウェアによって提供されるコントローラーの名前。

ForceFeedbackMotors

生ゲーム コントローラーの力フィードバック モーターの一覧。

HardwareProductId

生ゲーム コントローラーのハードウェア製品 ID。

HardwareVendorId

生のゲーム コントローラーのハードウェア ベンダー ID。

Headset

生のゲーム コントローラーに接続されているオーディオ ヘッドセット。

IsWireless

生のゲーム コントローラーのワイヤレス状態を示す値を取得します。

NonRoamableId

コントローラーを識別する一意の ID。 コントローラーが接続されている限り、ID は変更されません。

RawGameControllers

接続されているすべての未加工ゲーム コントローラーの一覧。

SimpleHapticsControllers

デバイスで使用可能なすべてのハプティクス フィードバック モーターを表す SimpleHapticsController オブジェクトのコレクション。

SwitchCount

生ゲーム コントローラー上のスイッチの数。

User

生のゲーム コントローラーに関連付けられているユーザー。

メソッド

FromGameController(IGameController)

指定されたゲーム コントローラーを生のゲーム コントローラーとして返します。

GetButtonLabel(Int32)

指定したボタンのボタン ラベルを取得します。

GetCurrentReading(Boolean[], GameControllerSwitchPosition[], Double[])

生のゲーム コントローラーの状態のスナップショットを取得します。

GetSwitchKind(Int32)

生のゲーム コントローラーで指定されたスイッチの種類を取得します。

TryGetBatteryReport()

生のゲーム コントローラーの現在のバッテリー状態に関する情報を取得します。

イベント

HeadsetConnected

ヘッドセットが未加工のゲーム コントローラーに接続されたときに通知します。

HeadsetDisconnected

ヘッドセットが未加工のゲーム コントローラーから切断されたときに通知します。

RawGameControllerAdded

新しい生ゲーム コントローラーが接続されたときに通知します。

RawGameControllerRemoved

未加工のゲーム コントローラーが切断されたときに通知します。

UserChanged

生のゲーム コントローラーに関連付けられているユーザーが変更されたときに通知します。

適用対象

こちらもご覧ください