日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Unity3D WebCamTexture 調用外部攝像頭

Unity3D WebCamTexture 調用外部攝像頭

來源:程序員人生   發布時間:2015-05-05 07:54:12 閱讀次數:10376次

1:Unity 中使用WebCamTexture 調用攝像頭實現拍照和攝像。

using UnityEngine; using System.Collections; using System.IO; using System.Runtime.Serialization; using System.Runtime .Serialization.Formatters.Binary; using System.Threading; public class takePhoto : MonoBehaviour { public string deviceName; //接收返回的圖片數據 WebCamTexture tex; public Texture2D _tex; void OnGUI() { if (GUI.Button(new Rect(10, 20, 100, 40), "開啟攝像頭")) { // 調用攝像頭 StartCoroutine(start()); } if(GUI.Button(new Rect(10,70,100,40),"捕獲照片")) { //捕獲照片 tex.Pause(); StartCoroutine(getTexture()); } if(GUI.Button(new Rect(10,120,100,40),"再次捕獲")) { //重新開始 tex.Play(); } if(GUI.Button(new Rect(120,20,80,40),"錄相")) { //錄相 StartCoroutine(SeriousPhotoes()); } if(GUI.Button(new Rect(10,170,100,40),"停止")) { //停止捕獲鏡頭 tex.Stop (); StopAllCoroutines(); } if(tex!=null) { // 捕獲截圖大小 ―距X左屏距離 | 距Y上屏距離 GUI.DrawTexture(new Rect(Screen.width/2⑴50,Screen.height/2⑴90,280,200),tex); } } /// <summary> /// 捕獲窗口位置 /// </summary> public IEnumerator start() { yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); if (Application.HasUserAuthorization(UserAuthorization.WebCam)) { WebCamDevice[] devices = WebCamTexture.devices; deviceName= devices[0].name; tex=new WebCamTexture(deviceName,300,300,12); tex.Play(); } } /// <summary> /// 獲得截圖 /// </summary> /// <returns>The texture.</returns> public IEnumerator getTexture() { yield return new WaitForEndOfFrame(); Texture2D t=new Texture2D(400,300); t.ReadPixels( new Rect(Screen.width/2⑵00,Screen.height/2⑸0,360,300),0,0,false); //距X左的距離 距Y屏上的距離 // t.ReadPixels(new Rect(220, 180, 200, 180), 0, 0, false); t.Apply(); byte[] byt=t.EncodeToPNG(); // File.WriteAllBytes(Application.dataPath+"/Photoes/"+Time.time+".jpg",byt); tex.Play(); } /// <summary> /// 連續捕獲照片 /// </summary> /// <returns>The photoes.</returns> public IEnumerator SeriousPhotoes() { while (true) { yield return new WaitForEndOfFrame(); Texture2D t = new Texture2D(400, 300, TextureFormat.RGB24, true); t.ReadPixels(new Rect(Screen.width/2⑴80,Screen.height/2⑸0,360,300), 0, 0, false); t.Apply(); print(t); byte[] byt = t.EncodeToPNG(); // File.WriteAllBytes(Application.dataPath + "/MulPhotoes/" + Time.time.ToString().Split('.')[0] + "_" + Time.time.ToString().Split('.')[1] + ".png", byt); Thread.Sleep(300); } } }


2:Unity 中使用WebCamTexture 設置背景為攝像頭畫面

1在unity的場景中新建1個Quad作為背景,可以自行調理縮放和位置。

2.新建1個Material文件夾用來寄存Material,在Material里新建1個Material材質,并命名為CamTex。
3.選中CamTex材質,在Inspector面板當選擇shader的模式為Unlit/Texture。
4.新建C#腳本,并將其命名為WebCam,雙擊腳本進行編輯,添加以下代碼:
using UnityEngine; using System.Collections; public class WebCam : MonoBehaviour { public string deviceName; WebCamTexture tex; // Use this for initialization IEnumerator Start () { yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); if(Application.HasUserAuthorization(UserAuthorization.WebCam)) { WebCamDevice[] devices = WebCamTexture.devices; deviceName = devices[0].name; tex = new WebCamTexture(deviceName, 400, 300, 12); renderer.material.mainTexture = tex; tex.Play(); } } }


5.將CamWeb腳本和CamTex材質拖到Quad上
6.將Quad調至攝像機正對位置。
7.點擊播放按鈕便可調用攝像頭,在quad的貼圖會顯示攝像頭中的畫面。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产区在线看 | 日韩精品在线播放 | 国产黄色大片 | 成人天堂资源www在线 | 国产精品毛片一区二区在线看 | av麻豆| 成人国产一区 | 91在线一区二区 | 色综合九九| 九九香蕉视频 | 美日韩成人 | 国产精品成人久久久久 | 色婷婷综合久久久中文字幕 | 热久久久 | 曰本一区二区三区 | 久久久久久av | 久久久国产精品一区 | 91久久 | 国产精品视频在线观看 | 一世独尊动漫在线观看 | 国产精品免费看 | 一级黄色在线播放 | 欧美黄色网页 | 欧洲免费vps一级毛片 | 精品国产青草久久久久福利 | 国产精品一区三区 | 夜夜春精品 | 国产99久久精品一区二区永久免费 | 高清国产一区 | 福利视频亚洲 | 国产精品二 | 美女18黄网站 | 精品久久久久久久久久久久久久久久久久 | 久艹精品| 成人国产精品久久久按摩 | 欧美一a一片一级一片 | 91偷拍精品一区二区三区 | 97久久久 | 成人影院免费观看 | 亚洲乱码一区二区三区在线观看 | av老司机在线观看 |