最近在做项目的时候用到了,调用外部摄像头的功能,所以就到网上找了一下,有好多代码,但都是大同小异。一看就能明白的,我今天就想整理一下,免得到时在用时,找不到了,就做个笔记吧。文章源自大腿Plus-https://www.shijunzh.com/archives/660
在上代码之前,要先说明一下,调用外部摄像头功能,之后能拓展好多功能出来,拍照啊 截屏啊什么的。有需要的可以试一下。下面开始上代码。文章源自大腿Plus-https://www.shijunzh.com/archives/660
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(RawImage))] public class CameraDevice : MonoBehaviour { private List<WebCamTexture> webCamTextures = new List<WebCamTexture>(); private RawImage image; #region Unity Method // Called once before Start void Awake() { image = GetComponent<RawImage>(); } // Use this for initialization IEnumerator Start() { //获取授权 yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); if (Application.HasUserAuthorization(UserAuthorization.WebCam)) { WebCamDevice[] devices = WebCamTexture.devices; for (int i = 0; i < devices.Length; i++) { WebCamTexture webCamTexture = new WebCamTexture(devices[i].name, 400, 300, 12); webCamTexture.Play(); webCamTextures.Add(webCamTexture); } } } // Update is called once per frame void Update() { } // OnDestroy is called when the App is killed void OnDestroy() { } #endregion public void SetDevice(int index) { image.texture = webCamTextures[index]; } }
我测试过链接多个摄像头,但是当有三个的时候只识别两个,但是在QQ的设置里面明明能看到三个,不知道是我用手机当摄像头的原因,还是只能识别两个。这个还有待查证。最后说一句,就是要将这个脚本放到挂有RawImage的组件上。文章源自大腿Plus-https://www.shijunzh.com/archives/660
评论