LegacyGipGameControllerProvider.SetStandardControllerButtonRemapping 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자에 대한 표준 게임 패드의 단추 및 축 매핑을 변경합니다.
public:
virtual void SetStandardControllerButtonRemapping(User ^ user, bool previous, IMapView<RemappingButtonCategory, Platform::Object ^> ^ remapping) = SetStandardControllerButtonRemapping;
void SetStandardControllerButtonRemapping(User const& user, bool const& previous, IMapView<RemappingButtonCategory, IInspectable const&> const& remapping);
public void SetStandardControllerButtonRemapping(User user, bool previous, IReadOnlyDictionary<RemappingButtonCategory,object> remapping);
function setStandardControllerButtonRemapping(user, previous, remapping)
Public Sub SetStandardControllerButtonRemapping (user As User, previous As Boolean, remapping As IReadOnlyDictionary(Of RemappingButtonCategory, Object))
매개 변수
- user
- User
컨트롤러를 다시 매핑할 사용자입니다.
- previous
-
Boolean
bool
True
매핑을 비활성 이전 저장소에 저장해야 하면 이고, false
매핑을 적용해야 하는 경우 입니다.
- remapping
-
IMapView<RemappingButtonCategory,Platform::Object>
IMapView<RemappingButtonCategory,IInspectable>
각 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 아래쪽, DPad 위쪽, Y, X, B, A, 보기, 메뉴, 가이드 및 바인딩입니다.
일반적으로 이전 매개 변수는 이어야 false
하며, 이 매개 변수는 다시 매핑을 적용합니다. 나중에 매핑을 저장하는 데 사용할 수도 있습니다(예: 사용자 지정 매핑을 적용하기 전에 기본 매핑을 저장하여 나중에 기본 매핑을 복원할 수 있도록).
주의
컨트롤러 매핑은 시스템 전체이며 지정된 사용자에 대해 지속됩니다. 이 작업은 사용자의 지시에 따라 수행해야 합니다.