最近在做项目的时候用到了,调用外部摄像头的功能,所以就到网上找了一下,有好多代码,但都是大同小异。一看就能明白的,我今天就想整理一下,免得到时在用时,找不到了,就做个笔记吧。
在上代码之前,要先说明一下,调用外部摄像头功能,之后能拓展好多功能出来,拍照啊 截屏啊什么的。有需要的可以试一下。下面开始上代码。文章源自大腿Plus-https://www.zhaoshijun.com/archives/660
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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.zhaoshijun.com/archives/660 文章源自大腿Plus-https://www.zhaoshijun.com/archives/660
我的微信
微信扫一扫
shijun_z
我的QQ
QQ扫一扫
846207670
评论