unity获取手机的权限:
RawImage useCameraImg是摄像头显示区域;
maskcaming遮罩区域,添加Mask组件;
iconimg头像图片;
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// 获取摄像头权限 /// </summary> public class LetterSongCamera : MonoBehaviour { WebCamTexture camTexture; //private WebCamDevice[] devices; /// <summary> /// 摄像头设备名 /// </summary> string deviceName; /// <summary> /// 摄像头显示状态 /// </summary> bool cameraIsOpen; /// <summary> /// 摄像机显示框 /// </summary> public RawImage useCameraImg, useCameraImg1; private void Awake() { //初始化摄像头显示的图像的大小 camTexture = new WebCamTexture(); } private void Start() { cameraIsOpen = false; } /// <summary> /// 打开摄像头 /// </summary> public void OpenWebCamDevice() { Debug.Log("打开摄像头"); //用户授权 if (Application.HasUserAuthorization(UserAuthorization.WebCam)) { Debug.Log("摄像机权限授权成功=============="); //显示画面的设备就是要打开的摄像头 //devices = WebCamTexture.devices; //获取到设备名称 for (int i = 0; i < WebCamTexture.devices.Length; i++) { //如果是前置摄像机 if (WebCamTexture.devices[i].isFrontFacing) { deviceName = WebCamTexture.devices[i].name; camTexture = new WebCamTexture(deviceName); useCameraImg.texture = camTexture; useCameraImg1.texture = camTexture; //开启摄像头 camTexture.Play(); cameraIsOpen = true; break; } } //deviceName = WebCamTexture.devices[1].name; //camTexture = new WebCamTexture(deviceName); 开启摄像头 //camTexture.Play(); //useCameraImg.texture = camTexture; //useCameraImg.rectTransform.localEulerAngles = new Vector3(0, 0, -camTexture.videoRotationAngle); //cameraIsOpen = true; } } /// <summary> /// 关闭摄像头 /// </summary> public void CloseWebCamDevice() { Debug.Log("关闭摄像头"); if (cameraIsOpen == true && useCameraImg != null) { cameraIsOpen = false; camTexture.Stop(); } } }