在unity中我们有时需要调用外部的摄像头,用来处理一系列的功能
using UnityEngine;
using System.Collections;using System.Threading;
public class BtnController : MonoBehaviour
{
public WebCamTexture webTex;
public string deviceName;
void Start()
{
}
void Update()
{
}
//绘制按钮
void OnGUI()
{
//开始按钮
if (GUI.Button(new Rect(0, 10, 100, 30), "click"))
{
//调用启动那个协程,开启摄像头
StartCoroutine(CallCamera());
}
//重启开始
if (GUI.Button(new Rect(0, 80, 100, 30), "restart"))
{
webTex.Play();
}
//绘制摄像头的显示区域以及大小
if (webTex != null)
GUI.DrawTexture(new Rect(110, 0, 1000, 600), webTex);
}
///
///调用摄像头
///
IEnumerator CallCamera()
{
yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
if (Application.HasUserAuthorization(UserAuthorization.WebCam))
{
WebCamDevice[] devices = WebCamTexture.devices;
deviceName = devices[0].name;
//设置摄像机摄像的区域
webTex = new WebCamTexture(deviceName, 10, 10, 10);
webTex.Play();//开始摄像
}
}
}