Version: 2022.2
Language : English
Cursor locking and full-screen mode in WebGL
Build and distribute a WebGL application

WebGL browser access to device features

Unity 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
supports WebCam access. To allow a WebGL application to access the webcam on a device, the browser must request its user to provide access to the cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary
. Without the permission to access the camera, the browser returns incomplete or inaccurate information.

Note: Currently, Unity WebGL supports WebCam devices only.

To request browser permission to access the webcam, use the Application.RequestUserAuthorization API:

using UnityEngine;
using UnityEngine.iOS;
using System.Collections;

// Get WebCam information from the browser
public class ExampleClass : MonoBehaviour
{
    private WebCamDevice[] devices;
    
    // Use this for initialization
    IEnumerator Start()
    {
        yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
        if (Application.HasUserAuthorization(UserAuthorization.WebCam))
        {
            Debug.Log("webcam found");
            devices = WebCamTexture.devices;
            for (int cameraIndex = 0; cameraIndex < devices.Length; ++cameraIndex)
            {
                Debug.Log("devices[cameraIndex].name: ");
                Debug.Log(devices[cameraIndex].name);
                Debug.Log("devices[cameraIndex].isFrontFacing");
                Debug.Log(devices[cameraIndex].isFrontFacing);
            }
        }
        else
        {
            Debug.Log("no webcams found");
        }
    }
}

Note: Unity recommends to use the MediaDevices.getUserMedia() API to request user permission for accessing the device. This feature is available only in secure contexts (HTTPS).

Cursor locking and full-screen mode in WebGL
Build and distribute a WebGL application