|
- using UnityEngine;
- using System.Collections;
- using System.IO;
- public class CameraController : MonoBehaviour {
- public string deviceName;
- public WebCamTexture webTex;
- public GameObject objCameraController;
- 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<UITexture>().mainTexture = Resources.Load(strTempTime.ToString(), typeof(Texture)) as Texture;
- // print("44444:"+strTempTime);
- }
-
- }
- /// <summary>
- /// 调用摄像机
- /// </summary>
- /// <returns></returns>
- IEnumerator CallTheCamera()
- {
- yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
- if(Application.HasUserAuthorization(UserAuthorization.WebCam))
- {
- WebCamDevice[] devices = WebCamTexture.devices;
- deviceName = devices[0].name;
- //摄像机摄像的区域
- webTex = new WebCamTexture(deviceName, 400, 300, -112);
- GameObject.Find("CameraTexture").GetComponent<UITexture>().mainTexture = webTex;
- webTex.Play();
- }
- }
- /// <summary>
- /// 获取并保存texture
- /// </summary>
- /// <returns></returns>
- IEnumerator GetTexture2D()
- {
- print(GameObject.Find("CameraTexture").transform.localPosition);
- yield return new WaitForEndOfFrame();
- Texture2D t = new Texture2D(GameObject.Find("CameraTexture").GetComponent<UITexture>().mainTexture.width, GameObject.Find("CameraTexture").GetComponent<UITexture>().mainTexture.height);
- t.ReadPixels(new Rect(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);
- //GameObject atlasPrefab = Resources.Load("TempAtlas") as GameObject;
- // Instantiate(ImgAtlas) as GameObject;
- // tempA.GetComponent<UIAtlas>().spriteList.Add(
- //
- UnityEditor.AssetDatabase.Refresh();
- //yield return new WaitForSeconds(1);
- GameObject.Find("pig5").GetComponent<UITexture>().mainTexture = Resources.Load(strTempTime.ToString(), typeof(Texture)) as Texture;
- print("33333"+strTempTime);
- // NGUITools.AddSprite(tempA, tempA.GetComponent<UIAtlas>(), "tempSprite");
- // UIAtlas atlas = (Instantiate(ImgAtlas) as GameObject).GetComponent<UIAtlas>();
- // Texture text = Resources.Load(Application.dataPath + "/Resources/" + strTempTime + ".jpg", typeof(Texture)) as Texture;
- // print(atlas.ToString());
- //UISlicedSprite ssprite = NGUITools.AddWidget<UISlicedSprite>(Game);
- // GameObject.Find("pig5").GetComponent<UISlicedSprite>().s
- //UIAtlas atlas = Resources.Load(Application.dataPath + "/test/" + "Camera Atlas", typeof(UIAtlas)) as UIAtlas;
- //print(atlas.ToString());
- // objAvatar.GetComponent<UISlicedSprite>().spriteName = atlas.name;//this.gameObject.GetComponent<UISlicedSprite>().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);
- }
- }
复制代码 |
评分
-
查看全部评分
|