LegacyGipGameControllerProvider.GetStandardControllerButtonRemapping 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자에 대한 표준 게임 패드의 단추 및 축 매핑을 검색합니다.
public:
virtual IMapView<RemappingButtonCategory, Platform::Object ^> ^ GetStandardControllerButtonRemapping(User ^ user, bool previous) = GetStandardControllerButtonRemapping;
IMapView<RemappingButtonCategory, IInspectable const&> GetStandardControllerButtonRemapping(User const& user, bool const& previous);
public IReadOnlyDictionary<RemappingButtonCategory,object> GetStandardControllerButtonRemapping(User user, bool previous);
function getStandardControllerButtonRemapping(user, previous)
Public Function GetStandardControllerButtonRemapping (user As User, previous As Boolean) As IReadOnlyDictionary(Of RemappingButtonCategory, Object)
매개 변수
- user
- User
컨트롤러 매핑을 가져올 사용자입니다.
- previous
-
Boolean
bool
True
비활성 이전 저장소에서 매핑을 읽어야 하면 이고, false
활성 매핑을 읽어야 하는 경우 입니다.
반환
각 RemappingButtonCategory 를 다시 매핑을 지정하는 데이터와 일치하는 사전입니다. 데이터 형식은 다음과 같이 범주에 따라 다릅니다.
RemappingButtonCategory | 데이터 설명 |
---|---|
ButtonsSettings | 16개의 니블로 구성된 uint64. 각 니블은 단추의 할당을 나타냅니다. 표준 할당이 0xfedcba9876543210 |
아날로그설정 | 다음과 같은 효과가 있는 uint32: 0x1 : 스왑은 0x2 트리거합니다. 엄지스틱 0x4 교환: 왼쪽 엄지스틱 0x8 반전: 오른쪽 엄지스틱을 반전합니다. 표준 할당은 0입니다. |
VibrationSettings | 다음과 같은 효과가 있는 uint32: 0x01: 진동을 사용하지 않도록 설정합니다. 표준 할당은 0입니다. |
예제
void RemapButtons(IGameController controller, IGameControllerProvider controllerProvider)
{
LegacyGipGameControllerProvider legacyGipGameControllerProvider =
LegacyGipGameControllerProvider.FromGameControllerProvider(controllerProvider);
// Retrieve all current remappings set for standard controllers
IReadOnlyDictionary<RemappingButtonCategory, object> currentMappings =
legacyGipGameControllerProvider.GetStandardControllerButtonRemapping(
controller.User, false);
// Swap two of the buttons
Dictionary<RemappingButtonCategory, object> remaps =
new Dictionary<RemappingButtonCategory, object>();
// Duplicates are not allowed. Swap two of the buttons
UInt64 currentButtonMappings =
(UInt64)currentMappings[RemappingButtonCategory.ButtonSettings];
// Isolate the buttons we want to remap
UInt64 lastButton = (currentButtonMappings & 0xf000000000000000);
UInt64 secondLastButton = currentButtonMappings & 0x0f00000000000000;
// Swap their positions
UInt64 newMapping = (lastButton >> 4) | (secondLastButton << 4);
// Recombine with the original mappings
UInt64 newButtonMappings = (currentButtonMappings & 0x00ffffffffffffff) | newMapping;
// Add the new button remappings to the mapping dictionary
remaps.Add(RemappingButtonCategory.ButtonSettings, newButtonMappings);
// Update controller mapping
legacyGipGameControllerProvider.SetStandardControllerButtonRemapping(
controller.User, false, newButtonMappings);
}
설명
ButtonSettings의 단추 순서는 오른쪽 엄지스틱, 왼쪽 엄지스틱, 오른쪽 어깨, 왼쪽 어깨, DPad 오른쪽, DPad 왼쪽, DPad Down, DPad Up, Y, X, B, A, 보기, 메뉴, 가이드 및 바인딩입니다.
일반적으로 이전 매개 변수는 현재 컨트롤러 매핑을 읽는 이어야 false
합니다. 나중에 저장한 매핑을 읽는 데도 사용할 수 있습니다(예: 이전 상태를 복원하기 위해 저장된 매핑을 읽는 경우).
주의
컨트롤러 매핑은 시스템 전체이며 지정된 사용자에 대해 영구적입니다. 이 작업은 사용자의 지시에 따라 수행해야 합니다.