unity android屏幕自适应,Android应用开发之unity打开移动摄像头,并自适应屏幕显示摄像头数据。兼容android和ios...

本文将带你了解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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值