Game Controller Support
outline¶
In the UI provided by the SDK, you can move the mouse cursor and click buttons using a 'game controller' rather than a regular mouse. For example, in the webview area exposed by the SDK, a user can move the mouse cursor with a game controller and click a button within the webview area.
Note
The 'Game Controller' function is available starting from the SDK version below.
-
Hive SDK v4 Unity Windows 24.1.0 or higher
- Hive SDK v4 Android 26.7.0 or higher
Supported game controllers{ #supported-controller }¶
The types of game controllers supported by the SDK are as follows, and the number of controllers that can be used per SDK is maximum 1.
-
Microsoft Xbox Controller
-
Sony PlayStation DualSense, DualShock controller
-
Nintendo Switch Pro Controller
Controller key mapping{ #controller-keymapping }¶
Starting from the Hive SDK versions below, some UI support controller key mapping when using a game controller.
-
Hive SDK v4 Unity Windows 25.0.0 or higher
-
Hive SDK v4 Android 26.7.0 or higher
Warning
Please note that in UIs that support controller key mapping, the [key operation method] (#key) is different from the key operation method in the existing UI.
Note
In UIs that do not separately support controller key mapping, a mouse cursor is exposed on the screen, and the UI is controlled with a game controller by moving the cursor.
Key operation method{ #key }¶
Check| Input device | Existing UI key operation method | Controller key mapping support UI key operation method |
| Left analog joystick | Move mouse cursor | Move focus |
| Right analog joystick | Mouse vertical and horizontal wheel scroll | Mouse vertical and horizontal wheel scroll |
| A button | Click left mouse button | (X button for Dual Sense or Dual Shock) |
| B button | Not supported | Cancel (O button for Dual Sense or Dual Shock) |
| D-pad | Not supported | Move focus |
Controller key mapping support UI list{ #key-mapping-ui-list }¶
Below is a list of UIs that support the controller key mapping feature:
Enter authentication number| Supported UI | SDK v4 Unity Windows support | SDK v4 Android support | |
| 1 | App update | supports | supports |
| 2 | Access restrictions | supports | supports |
| 3 | Server check | supports | supports |
| 4 | Waiting for login | supports | - |
| 5 | IdP list | supports | - |
| 6 | Account conflict | - | supports |
| 7 | Promotional Banner | supports | Support (Front Banner) |
| 8 | Promotion Review Popup | - | supports |
| 9 | Promotion end pop-up | - | supports |
| 10 | Check Google payment account | supports | - |
| 11 | Payment confirmation | supports | - |
| 12 | Payment error | supports | - |
| 13 | Repayment | - | supports |
| 14 | Steam Deck Login | supports | - |
| 15 | Login | supports | - |
| 16 | Find Password | supports | - |
| 17 | supports | - | |
| 18 | Find Email | supports | - |
| 19 | Dormant account information | supports | - |
| 20 | Analytics consent screen | - | supports |
Precautions (common to platforms){ #notes_all_platform }¶
When applying 'Game Controller' to the SDK, the following points must be kept in mind.
Game controller motion range¶
The game controller supportsonly in the UI implemented with theSDK. For example, the web view UI displayed by the SDK in the game, such as the login screen, news and promotion banners, etc. It is not supported in UIs not implemented by the SDK, such as external browser windows. Mouse cursor movement using a game controller within the game must be implemented directly by the developer.
Note (Windows){ #notes_windows_platform }¶
Steam integration¶
If you set “Enable Steam Input” when linking with Steam, you will not be able to use the game controller function provided by the SDK. However, by changing the layout provided by Steam, an environment similar to the game controller function provided by the SDK can be provided. For more information, please refer to the [Steam Input page] (https://partner.steamgames.com/doc/features/steam_controller) in the official Steamworks documentation.
Handle controller input the traditional way¶
If game controller input (including Steam Deck's own controller) occurs after the app calls an SDK method and before receiving a response, the app must not process the game controller input itself. This is because the SDK processes game controller input that occurs on the UI implemented by the SDK.
Windows On-Screen Keyboard¶
When using the game controller support function provided by the SDK in Windows On-Screen Keyboard, you must set the following in Windows On-Screen Keyboard “Options” to use the game controller function.
-
Check Scan and enter
-
Check only Use joystick, gamepad, or other gaming device
Restrictions on controller key mapping functionality¶
UI with the controller key mapping function applied only works properly in Rog Ally > Gamepad mode.
Notice (Android){ #notes_android_platform }¶
Android OS virtual keyboard control restrictions¶
The Android OS virtual keyboard exposed by selecting a text input field in the UI with a game controller cannot be operated with a game controller. When the virtual keyboard is enabled, you must directly touch the screen to enter text.
Game controller motion range¶
The Hive SDK's game controller functionality is only supported in UI areas directly implemented with the SDK.
As shown below, UI that exposes itself in external modules and system areas is excluded from game controller control through the Hive SDK.
-
External library integration UI: external IdP login screen, payment (IAP) pop-up, content sharing pop-up, etc.
-
External browser and web view: In-App Browser and external system browser
Known Issues{ #issues }¶
If you repeatedly and quickly attempt to reconnect the game controller, the controller may behave abnormally. For example, in the case of the Switch Pro Controller, if disconnection and connection are repeated within a short period of time, the mouse cursor may move in a certain direction even if the user does not operate it. This is a Switch Pro Controller issue and can be resolved by pressing the sync button located to the left of the wired connection terminal if the problem occurs.