資源簡(jiǎn)介
在unity3d里可以打開usb連接的外置攝像頭
在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭
在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭在unity3d里可以打開usb連接的外置攝像頭

代碼片段和文件信息
using?UnityEngine;
using?System.Collections;
public?class?CamController?:?MonoBehaviour?{
public?string?deviceName;
WebCamTexture?tex;//接收返回的圖片數(shù)據(jù)
///?實(shí)現(xiàn)IEnumerator接口,這里使用了一個(gè)協(xié)程,相當(dāng)于多線程。
///?這里是調(diào)用攝像頭的方法。
IEnumerator?test()
{
yield?return?Application.RequestUserAuthorization(UserAuthorization.WebCam);//授權(quán)
if?(Application.HasUserAuthorization(UserAuthorization.WebCam))
{
WebCamDevice[]?devices?=?WebCamTexture.devices;
deviceName?=?devices[0].name;
//設(shè)置攝像機(jī)攝像的區(qū)域
tex?=?new?WebCamTexture(deviceName?400?300?12);
tex.Play();//開始攝像
}
}
//這段代碼就是Unity調(diào)用攝像頭的方法,圖片數(shù)據(jù)就保存在tex中。
//下面看這段怎么使用上面的那段代碼。
void?OnGUI()
{
//開始按鈕
if?(GUI.Button(new?Rect(0?0?150?150)?“open“))
{
//調(diào)用啟動(dòng)那個(gè)協(xié)程,開啟攝像頭
StartCoroutine(test());
}
//暫停
if(GUI.Button(new?Rect(020010030)“pause“))
{
tex.Pause();
//這個(gè)方法就是保存圖片
StartCoroutine(getTexture2d());
}
//重啟開始
if?(GUI.Button(new?Rect(0?300?100?30)?“restart“))
{
tex.Play();
}
/*if?(GUI.Button(new?Rect(100?0?100?30)?“攝像“))
{
//開始攝像,攝像就是一系列的圖片集合
//StartCoroutine(getTexture2dshexiang());
}*/
if(tex!=null)
GUI.DrawTexture(new?Rect(200?200?200?180)?tex);
}
//保存圖片是一個(gè)難點(diǎn),找了半天,才發(fā)現(xiàn)這個(gè)方法來(lái)實(shí)現(xiàn)
///?獲取攝像頭截取的圖片,這里也是一個(gè)協(xié)程
IEnumerator?getTexture2d()
{
yield?return?new?WaitForEndOfframe();
Texture2D?t?=?new?Texture2D(200?180);//要保存圖片的大小
//截取的區(qū)域
t.ReadPixels(new?Rect(200?320?200?180)?0?0?false);
t.Apply();
//把圖片數(shù)據(jù)轉(zhuǎn)換為byte數(shù)組
byte[]?byt?=?t.EncodeToPNG();
//然后保存為圖片
System.IO.File.WriteAllBytes(Application.dataPath?+?“/shexiang/“?+?Time.time?+?“.jpg“?byt);
//File.WriteAllBytes(Application.dataPath?+?“/shexiang/“?+?Time.time?+?“.jpg“?byt);
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????2291??2015-08-27?11:25??CamController.cs
評(píng)論
共有 條評(píng)論