Unity Web 平台支持网络摄像头访问。要允许 Web 应用程序访问设备上的网络摄像头,浏览器必须请求其用户提供对摄像机的访问权限。如果没有访问摄像机的权限,浏览器会返回不完整或不准确的信息。
注意:目前,Web 平台仅支持网络摄像头设备。
要请求浏览器访问网络摄像头的权限,请使用 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");
}
}
}
注意:Unity 建议使用 MediaDevices.getUserMedia() API 来请求用户访问设备的权限。此功能仅在安全上下文 (HTTPS) 中可用。