unity3d 中控制手机前后摄像头切换
来源:互联网 发布:cc攻击 php网站防御 编辑:程序博客网 时间:2024/05/24 06:33
闲话少说,上代码,google上搜来的代码,不过里面有bug,不能顺利切换,下面的代码是已经修改过的,经测试,可以正常运行。
using System;using UnityEngine;using System.IO;using System.Collections;public class NewBehaviourScript : MonoBehaviour {//public GUITexture mytext;public UITexture mytext;private WebCamTexture frontWebcamTexture = null;private WebCamTexture rearWebcamTexture = null;private WebCamDevice[] devices;[HideInInspector]public WebCamTexture activeCam;bool flag = false ;static int cameraIndex = 0 ;/* 按钮控件 */public GameObject btn_shot ;public GameObject btn_change_camera ; void Awake () {for( int i = 0 ; i < WebCamTexture.devices.Length ; i++ ) NGUIDebug.Log(WebCamTexture.devices[i].name);devices = WebCamTexture.devices;string frontCamName = "";string rearCamName = "";for(int i=0; i<devices.Length; i++){if (devices[i].isFrontFacing)frontCamName = devices[i].name;elserearCamName = devices[i].name;}frontWebcamTexture = new WebCamTexture(frontCamName);rearWebcamTexture = new WebCamTexture(rearCamName);frontWebcamTexture.Stop();rearWebcamTexture.Stop();activeCam = rearWebcamTexture;//mytext.material.mainTexture = rearWebcamTexture ;mytext.material.SetTexture("_MainTex", rearWebcamTexture);activeCam.Play(); }void Start(){/* 事件 */UIEventListener.Get(btn_shot).onClick += OnShotButtonClick ;UIEventListener.Get(btn_change_camera).onClick += OnCameraChangeClick ;NGUIDebug.Log ("Active camera: " + activeCam);}public bool HasFrontCamera(){if (Application.isEditor) return false;return frontWebcamTexture.deviceName != "";}public void OnShotButtonClick (GameObject go) {SavePhoto() ;}/* 相机切换 */public void OnCameraChangeClick (GameObject go) {if (!HasFrontCamera())return;activeCam.Stop ();if (activeCam == frontWebcamTexture){NGUIDebug.Log ("Switching to rear cam...");//renderer.material.mainTexture = rearWebcamTexture;//mytext.material.mainTexture = rearWebcamTexture ;mytext.material.SetTexture("_MainTex", rearWebcamTexture);activeCam = rearWebcamTexture;}else{NGUIDebug.Log ("Switching to front cam...");//mytext.material.mainTexture = frontWebcamTexture ;mytext.material.SetTexture("_MainTex", frontWebcamTexture);activeCam = frontWebcamTexture;}NGUIDebug.Log ("... done.");NGUIDebug.Log("Trying to Play the active WebCamTexture: (" + activeCam + ")");activeCam.Play();} public void ShowCamera() { //myCameraTexture.guiTexture.enabled = true;mytext.enabled = true; activeCam.Play();NGUIDebug.Log("-------------show--------->>>>>" + mytext) ; } public void HideCamera() { NGUIDebug.Log("-------------hide--------->>>>>" + mytext) ; //myCameraTexture.guiTexture.enabled = false; mytext.enabled = false;activeCam.Stop(); }public void SavePhoto() {NGUIDebug.Log("***************oh fuck***********************finally worked!!!") ;Texture tex = mytext.material.mainTexture;Texture2D tx = new Texture2D(activeCam.width, activeCam.height) ;tx.SetPixels(activeCam.GetPixels());byte[] byte_photo = tx.EncodeToPNG() ;NGUIDebug.Log("#####length######################333333" + byte_photo.Length) ;string photoName = "nimei.png" ;FileStream fs = new System.IO.FileStream("/mnt/sdcard/DCIM/Camera/nimei.png", System.IO.FileMode.Create); fs.Write(byte_photo,0,byte_photo.Length); fs.Close();}}
- unity3d 中控制手机前后摄像头切换
- 使用unity3D开发同时打开手机前后摄像头实例程序
- Unity3d中获取手机中的摄像头
- iphone 4 摄像头前后切换
- Android 如何切换前后摄像头
- iphone 4 摄像头是前后切换
- ios开发之设备前后摄像头切换
- 实现android 前后摄像头切换效果
- unity3d 重力加速度传感器控制摄像头
- 【Unity】关于Unity切换手机前后相机
- iOS疯狂详解之设备前后摄像头切换
- Android 相机开发 闪光灯,前后摄像头切换,调整缩放比例
- Android自定义相机,切换前后摄像头,照相机拍照
- android高级技术之相机的前后摄像头切换
- Vuforia提供了切换前后摄像头的方法
- Vuforia提供了切换前后摄像头的方法
- 没加前后摄像头切换功能的视频录制功能
- unity3d调用手机或电脑摄像头
- fork与printf的缓存问题
- C复习 其他数据类型
- Linux 进程通信系列——共享内存
- $smarty.config
- {$smarty} 保存变量
- unity3d 中控制手机前后摄像头切换
- C++:20129060
- 中文乱码解决
- git,刚学,记几个用法
- 设计器打不开
- Sql Server使用事务实现--转账问题
- 配置文件
- 最长单增子序列
- Linux iptables配置以及用法