Android应用开发之unity打开移动摄像头,并自适应屏幕显示摄像头数据。兼容android和ios
凌雪 2018-10-24 来源 :网络 阅读 2049 评论 0

摘要:本文将带你了解Android应用开发之unity打开移动摄像头,并自适应屏幕显示摄像头数据。兼容android和ios,希望本文对大家学Android有所帮助。

本文将带你了解Android应用开发之unity打开移动摄像头,并自适应屏幕显示摄像头数据。兼容android和ios,希望本文对大家学Android有所帮助。


跨平台并自适应显示摄像头数据新建工程并建立UI
   
   
    raw_Image的参数设置如下:
   
   
    设置两个Canvas_UI和Canvas_Web的CamRender Mode都为Screen   Space - Camera,并将Camera拖入。设置Canvas_UI的层级高于Canvas_WebCam
编写脚本,并将脚本挂在Canvas_WebCam
   
   
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;
publicclassMT_Camera:MonoBehaviour{TransformuiRoot;TransformcamRoot;RawImagecam_Video;Toggletog_togCamera;WebCamTexturecamTexture;publicintw_cam=640;publicinth_cam=480;privatevoidAwake(){uiRoot=GameObject.Find("Canvas_UI").transform;camRoot=GameObject.Find("Canvas_WebCam").transform;}privatevoidStart(){cam_Video=camRoot.Find("raw_Image").GetComponent();tog_togCamera=uiRoot.Find("tog_ChangeCam").GetComponent();transform.GetComponent().referenceResolution=new   Vector2(Screen.width,Screen.height);tog_togCamera.onValueChanged.AddListener(changeCam);tog_togCamera.isOn=true;///自适应屏幕分辨率显示摄像头数据//宽度不变,缩放高度自适应显示摄像头数据//cam_Video.rectTransform.sizeDelta=newVector2(h_cam*Screen.height/w_cam,Screen.width);//宽度不变,缩放宽度自适应显示摄像头数据cam_Video.rectTransform.sizeDelta=newVector2(Screen.height,w_cam*Screen.width/h_cam);}voidchangeCam(boolisOn){StartCoroutine(CallCamera(isOn));}IEnumeratorCallCamera(boolisOn){yieldreturnApplication.RequestUserAuthorization(UserAuthorization.WebCam);if(Application.HasUserAuthorization(UserAuthorization.WebCam)){if(camTexture!=null)camTexture.Stop();WebCamDevice[]cameraDevices=WebCamTexture.devices;stringdeviceName="";for(inti=0;i///翻转plane,正确显示摄像头数据//////Ifsettotrueisturn.publicvoidTurnCam(boolisOn){#ifUNITY_IOS||UNITY_IPHONEif(!isOn)cam_Video.rectTransform.localEulerAngles=newVector3(180,0,90);elsecam_Video.rectTransform.localEulerAngles=newVector3(0,0,-90);#elifUNITY_ANDROIDif(!isOn)cam_Video.rectTransform.localEulerAngles=newVector3(180,180,90);elsecam_Video.rectTransform.localEulerAngles=newVector3(0,180,90);#endif}}
分别发布到xcode和android测试。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved