다음을 통해 공유


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 클래스를 사용하는 방법에 대한 자세한 내용은 원시 게임 컨트롤러를 참조하세요.

버전 기록

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

원시 게임 컨트롤러와 연결된 사용자가 변경되었을 때 신호를 보냅니다.

적용 대상

추가 정보