//存储路径
    private string Path_save;
    //读取路径
    private string Path_read;
    private string filepath;
    private string destination;

private string filename;

IEnumerator getTexture2d()
    {
       
        yield return new WaitForEndOfFrame();
        Texture2D t = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);    
        t.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, true);
        byte[] bytes = t.EncodeToPNG();
        t.Compress(true);
        t.Apply();

//获取系统时间
        System.DateTime now = new System.DateTime();
        now = System.DateTime.Now;
        string filename = string.Format("image{0}{1}{2}{3}.png", now.Day, now.Hour, now.Minute, now.Second);
        //记录每一个截图名字
        StreamWriter sw;
        FileInfo ft = new FileInfo(filepath);
        if (!ft.Exists)
        {
            sw = ft.CreateText();
        }
        else
        {
            sw = ft.AppendText();
        }
        sw.WriteLine(filename);
        sw.Close();
        sw.Dispose();
        //应用平台判断,路径选择
        if (Application.platform == RuntimePlatform.Android)
        {
            string origin = Path_save;
            destination = "/mnt/sdcard/DCIM/ARphoto";
            if (!Directory.Exists(destination))
            {
                Directory.CreateDirectory(destination);
            }
            destination = destination + "/" + filename;
            Path_save = destination;

}
        //保存文件
        File.WriteAllBytes(Path_save, bytes);
    }

//以上代码是实现在unity3d里面截图并且保存在本地相册里面

public string deviceName;//这个虽然public,但无需为其绑定变量,直接运行,默认调用,显示本地摄像机的名称
    WebCamTexture webCam;

void Start()
    {
        filepath = Application.persistentDataPath + "/test.txt";
        WebCamDevice[] devices = WebCamTexture.devices;
        deviceName = devices[0].name;
        webCam = new WebCamTexture(deviceName, 400, 300, 12);
       Renderer renderer = GetComponent<Renderer>();
        renderer.material.mainTexture = webCam;

webCam.Play();  //可以通过按键来控制打开或者关闭摄像头
       
    }

//以上是控制摄像头开关的代码

public  void TakePhoto() 
   {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
      intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg")));
      startActivityForResult(intent, PHOTOHRAPH);
       File picture = new File(Environment.getExternalStorageDirectory() + "/temp.jpg");      
    }

//以上这段代码 打开摄像机,手动拍照,这段代码是Android端的代码,在unity里面通过下面代码进行调用

AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");   //获取unity的Java类,只能调用静态方法,获取静态属性
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");      //获取当前的Activity对象,能调用公开方法和公开属性      
        //一开始就调用安卓选择图片
        jo.Call("TakePhoto");

Android与unity3d交互的XML文件,用下载实例中的xml,只需修改包名就可以了

关于unity3d调用手机摄像机的一些操作相关推荐

  1. HTML5代码调用手机摄像头

    做手机移动端的时候,有时需要调用手机摄像头,有一个简单的方法使用input:file标签,不需要复杂代码操作就能实现调用拍照.相册等功能. capture – 设置选择需要调用的功能 camcorde ...

  2. html实现照片添加功能,HTML5 Canvas调用手机拍照功能实现图片上传功能(图文详解上篇)...

    这篇文章主要为大家详细介绍了HTML5 Canvas,和jquery技术,调用手机拍照功能实现图片上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 因为最近一段时间,一直在弄微信项目,其中涉及到 ...

  3. android 引用非 android 工程,Unity3D调用android方法(非插件方式)

    关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: android与Unity3D ...

  4. Unity3D调用android方法(非插件方式)

    关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...

  5. vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式

    PC端调用摄像头拍照上传base64格式到后台,这个没什么花里胡哨的骚操作,直接看代码 (canvas + video) <template><div><!--开启摄像头 ...

  6. python-电脑调用手机摄像头

    " 电脑没有摄像头之这不是有手机摄像头" 因为电脑低级或者像我一样本身就是使用台式电脑的兄弟,又不想买摄像头,想想就痛苦. 今天,我们就来解决这个痛苦的问题,虽然我们的电脑没有摄像 ...

  7. Python+OpenCV 调用手机摄像头并实现人脸识别

    文章内容: 1.windows 环境下安装 OpenCV 机器视觉环境搭建: 2.基于通过 Python+OpenCV调用手机摄像头并实现人脸检测识别. 目录 1 实验环境 2 实验准备 2.1 下载 ...

  8. js 调用手机返回按钮

    js 中我们可以使用 go history 返回上一级页面,但是如果你是单独一个页面,调用手机自带的返回按钮,想要返回你想要返回的页面, 可以让用户不容易出站 可以有效推广页面 js 为了安全考虑 不 ...

  9. 微信扫描二维码调用手机默认浏览器打开APP(APK)应用链接下载

    很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们实现微信跳转功能即可.下面给大家介绍这个功能 ? 功能目的 生成微信跳转链接,实现微信内置 ...

最新文章

  1. 武汉理工java_Java语言程序设计E
  2. MATLAB plot画图后横轴去除空白
  3. 详解SDR/DDR/DDR2/SDRAM的功能及异同
  4. docker的学习笔记(一)-一些基本的命令的学习
  5. 没想到你是这样的直播研发骚年
  6. MySQL中索引与视图的用法与区别详解
  7. SpringBoot------Servlet3.0的注解自定义原生Listener监听器
  8. The Moving Points
  9. python消息队列celery_python异步任务神器celery
  10. 百亿条日志实时处理,为什么要用Flink?
  11. android studio 中怎么写aspectj代码,Android AOP三剑客之AspectJ
  12. MIMO-OTFS in High-Doppler Fading Channels:Signal Detection and Channel Estimation(4)
  13. windbg 分析pchunter导致的蓝屏
  14. Tomcat 内存溢出对应解决方式
  15. 【UV打印机】PrintExp打印软件教程(七)-高级模式(其它)
  16. 抗滑桩初始弹性系数计算_理正岩土常见问题解答(全)
  17. window系统修复
  18. 实战技巧-学会这一招让前端工程师都刮目相看
  19. 踩坑记---Win10安装anaconda及tensorflow-cpu版
  20. 跑步听歌用哪种耳机更合适、推荐几款听歌跑步的耳机

热门文章

  1. 芯片进口额远超原油 中国芯待发力
  2. 手机测试陨石软件,不用仪器检测,肉眼就能教你辨别你手上的陨石!
  3. 理解Context内涵
  4. windows进程间通讯-邮路
  5. openwrt修改默认WIFI名,配置启动参数
  6. 修改/dev/shm大小
  7. Java实现肯德基点餐系统
  8. react:antd 中 table 添加合计行
  9. 中国计算机网络法规,中国互联网法规汇编.pdf
  10. java rsa获取密钥_[Java]读取.RSA密钥信息及获取KEYSTORE指纹信息