Unity的拍照功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27032631/article/details/51871833
   工作的第一个功能就是使用Unity进行拍照,并对拍照之后的照片进行上传服务器。上网查了很多相关的资料,当然了博客也有很多人提供了相关的代码。一开始我自己先做了个小项目,在window10下拍到照片。并能完整的保存在电脑当中。但是公司的项目是要导入到Ipad中的,这就涉及到了前置镜头和后者镜头的问题。电脑使用的是前置镜头,而Ipad则使用的后者镜头,这里就要进行计算转换。并且我发现导入到Ipad出现了拍照界面小了很多,真的是步步是坑,愁死我了。当然了,最后还是解决了。    

    public string deviceName;

    public Vector2 resSize = new Vector2(241,665);


  
  private Vector2 NewPoint = new Vector2(Screen.width/2,Screen.height/2);

        public int height=856;

        public int width=988;

        WebCamTexture tex;

        byte[] bs;

 
void OnGUI() {

            if (tex != null)
            {

               GUIUtility.RotateAroundPivot(-90, new Vector2(NewPoint.x + height / 2, NewPoint.y + width / 2));    //围绕着某一个点旋转

               GUIUtility.ScaleAroundPivot(new Vector2(1, -1), new Vector2(NewPoint.x + height / 2, NewPoint.y + width / 2));  // 将位置进行翻转

               GUI.DrawTexture(new Rect(resSize.x, resSize.y,width,height), tex);
            }
        }


 void Start(){


  StartCoroutine(start());


   }

void Update(){

   if(input.getKey(keycode.1)){

    StartCoroutine(getPhotos());
}

}
  


 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,width,height, 12);

                tex.Play();
            } 
       


  IEnumerator getPhotos()
        {
            yield return new WaitForEndOfFrame();

            Texture2D t = new Texture2D(width,height);

            t.ReadPixels(new Rect(resSize.x, resSize.y,width,height), 0,0);

            bs = t.EncodeToPNG();

            File.WriteAllBytes(Application.persistentDataPath + "/" + Time.deltaTime + ".png", bs);

            t.Apply();

        }

功能的实现跟其他博主的差不了多少,这里就多了一个前置转换后置的功能,还有就是导入到Ipad拍照的界面小了三倍,这个是根据我的项目得出来的。具体的还是要自己去测试吧!


刚刚开始写博客,可能不能将所知道的完整的表达出来,有什么疑问的话可以给我留言。有什么不足,有劳各位指出啦!



猜你喜欢

转载自blog.csdn.net/qq_27032631/article/details/51871833
今日推荐