Version: 2020.2
Cursor locking and full-screen mode in WebGL
WebGL: Interacting with browser scripting

Input in WebGL

Gamepad and Joystick support

Gamepads and Joysticks are supported in WebGLA JavaScript API that renders 2D and 3D graphics in a web browser. The Unity WebGL build option allows Unity to publish content as JavaScript programs which use HTML5 technologies and the WebGL rendering API to run Unity content in a web browser. More info
See in Glossary
(using the Input class) on browsers which support the HTML5 Gamepad API. Check our browser compatibilty table to see which browsers these are.

Note that browsers may only allow access to available input devices once the user has interacted with the device while the content has focus. This is a security measure to prevent using the connected devices for browser fingerprinting purposes. For this reason, you should make sure to instruct the user to click a button on their devices before checking Input.GetJoystickNames()) for connected devices.

Touch support

While Unity WebGL does not officially support mobile devices yet, Input.touches and related APIs are implemented on browsers and devices with touch support - as well as Input.acceleration.

Keyboard input and focus handling

By default, Unity WebGL will process all keyboard input send to the page, regardless of whether the WebGL canvas has focus or not. This is done so that a user can start playing a keyboard-based game right away without the need to click on the canvas to focus it first. However, this can cause problems when there are other HTML elements on the page which should receive keyboard input, such as text fields - as Unity will consume the input events before the rest of the page can get them. If you need to have other HTML elements receive keyboard input, you can change this behavior using the WebGLInput.captureAllKeyboardInput property.

Cursor locking and full-screen mode in WebGL
WebGL: Interacting with browser scripting