1、Unity3D调用摄像头加载到场景中代码 Posted on 2013年04月10日 by U3d / Unity3D脚本/插件/被围观 300 次 Unity3D调用摄像头加载到场景中代码如下: using UnityEngine; using System.Collections; using System.IO; public class CameraController : MonoBehaviour { public string deviceName; public WebCamTexture webTex; public GameObject objCame
2、raController; public GameObject objAvatar; public GameObject ImgAtlas; public string strTempTime=""; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(strTempTime!="") { // GameObject.Find("pig5").GetComponent().mainTexture = Resources
3、Load(strTempTime.ToString(), typeof(Texture)) as Texture; // print("44444:"+strTempTime); } } /// /// 调用摄像机 /// /// IEnumerator CallTheCamera() { yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); if(Application.HasUserAuthorization(UserAuthorization.WebCam)) {
4、 WebCamDevice[] devices = WebCamTexture.devices; deviceName = devices[0].name; //摄像机摄像的区域 webTex = new WebCamTexture(deviceName, 400, 300, -112); GameObject.Find("CameraTexture").GetComponent().mainTexture = webTex; webTex.Play(); } } /// /// 获取并保存texture /// /// IEnumerator GetTexture2
5、D() { print(GameObject.Find("CameraTexture").transform.localPosition); yield return new WaitForEndOfFrame(); Texture2D t = new Texture2D(GameObject.Find("CameraTexture").GetComponent().mainTexture.width, GameObject.Find("CameraTexture").GetComponent().mainTexture.height); t.ReadPixels(new Rect(
6、15, 177, 406.5f, 281.6f), 0, 0, false); t.Apply(); //把图片数据转换为byte数组 byte[] byt = t.EncodeToPNG(); //然后保存为图片 strTempTime = Time.time.ToString(); print("11111:"+strTempTime); File.WriteAllBytes(Application.dataPath + "/Resources/" + strTempTime + ".jpg", byt); print("22222"+strTempTime); //Ga
7、meObject atlasPrefab = Resources.Load("TempAtlas") as GameObject; // Instantiate(ImgAtlas) as GameObject; // tempA.GetComponent().spriteList.Add( // UnityEditor.AssetDatabase.Refresh(); //yield return new WaitForSeconds(1); GameObject.Find("pig5").GetComponent().mainTexture = Resources.Load(st
8、rTempTime.ToString(), typeof(Texture)) as Texture; print("33333"+strTempTime); // NGUITools.AddSprite(tempA, tempA.GetComponent(), "tempSprite"); // UIAtlas atlas = (Instantiate(ImgAtlas) as GameObject).GetComponent(); // Texture text = Resources.Load(Application.dataPath + "/Resources/" + strTe
9、mpTime + ".jpg", typeof(Texture)) as Texture; // print(atlas.ToString()); //UISlicedSprite ssprite = NGUITools.AddWidget(Game); // GameObject.Find("pig5").GetComponent().s //UIAtlas atlas = Resources.Load(Application.dataPath + "/test/" + "Camera Atlas", typeof(UIAtlas)) as UIAtlas; //print(atl
10、as.ToString()); // objAvatar.GetComponent().spriteName = atlas.name;//this.gameObject.GetComponent().spriteName; //objCameraController.SetActive(false); } void CameraStart() { StartCoroutine("CallTheCamera"); } void CameraSStart() { StartCoroutine("GetTexture2D"); } void CameraRestart() { webTex.Play(); } void CameraPause() { webTex.Pause(); } void ClickCameraBtn() { objCameraController.SetActive(true); } }






