1.常用的生成二维码网址 https://cli.im/
2.上官网下载二维码插件 http://zxingnet.codeplex.com/
3.将下载的插件中zxing.unity.dll文件放入Unity工程中Plugins文件夹下
4.将下面脚本挂载在场景的游戏物体身上,创建两个RawImage用于显示摄像头画面与生成的二维码,根据需要修改参数(如果报错,有可能是你的电脑没有摄像头)
  1 /*************************************************
  2  * 项目名称:Unity实现启用摄像头扫描与生成二维码
  3  * 脚本创建人:魔卡
  4  * 脚本创建时间:2017.12.20
  5  * 脚本功能:二维码识别生成控制类
  6  * ***********************************************/
  7 using System.Collections;
  8 using System.Collections.Generic;
  9 using UnityEngine;
 10 using UnityEngine.UI;
 11 using ZXing;
 12 using ZXing.QrCode;
 13
 14 //二维码识别生成控制类
 15 public class QRCode : MonoBehaviour
 16 {
 17     #region 扫描二维码
 18     //定义一个用于存储调用电脑或手机摄像头画面的RawImage
 19     public RawImage m_cameraTexture;
 20
 21     //摄像头实时显示的画面
 22     private WebCamTexture m_webCameraTexture;
 23
 24     //申请一个读取二维码的变量
 25     private BarcodeReader m_barcodeRender=new BarcodeReader();
 26
 27     //多久检索一次二维码
 28     private float m_delayTime = 3f;
 29     #endregion
 30
 31     #region 生成二维码
 32     //用于显示生成的二维码RawImage
 33     public RawImage m_QRCode;
 34
 35     //申请一个写二维码的变量
 36     private BarcodeWriter m_barcodeWriter;
 37     #endregion
 38
 39
 40     #region 扫描二维码
 41     void Start ()
 42     {
 43         //调用摄像头并将画面显示在屏幕RawImage上
 44         WebCamDevice[] tDevices = WebCamTexture.devices;    //获取所有摄像头
 45         string tDeviceName = tDevices[0].name;  //获取第一个摄像头,用第一个摄像头的画面生成图片信息
 46         m_webCameraTexture = new WebCamTexture(tDeviceName, 400, 300);//名字,宽,高
 47         m_cameraTexture.texture = m_webCameraTexture;   //赋值图片信息
 48         m_webCameraTexture.Play();  //开始实时显示
 49
 50         InvokeRepeating("CheckQRCode", 0, m_delayTime);
 51     }
 52     /// <summary>
 53     /// 检索二维码方法
 54     /// </summary>
 55     void CheckQRCode()
 56     {
 57         //存储摄像头画面信息贴图转换的颜色数组
 58         Color32[] m_colorData= m_webCameraTexture.GetPixels32();
 59
 60         //将画面中的二维码信息检索出来
 61         var tResult= m_barcodeRender.Decode(m_colorData, m_webCameraTexture.width, m_webCameraTexture.height);
 62
 63         if (tResult != null)
 64         {
 65             Debug.Log(tResult.Text);
 66         }
 67     }
 68     #endregion
 69
 70     #region 传递字符串生成二维码
 71     void Update()
 72     {
 73         if (Input.GetKeyDown(KeyCode.Escape))
 74         {
 75             //在这种写法中  宽高必须256  否则报错
 76             ShowQRCode("魔卡先生", 256, 256);
 77         }
 78     }
 79     /// <summary>
 80     /// 显示绘制的二维码
 81     /// </summary>
 82     /// <param name="s_formatStr">扫码信息</param>
 83     /// <param name="s_width">码宽</param>
 84     /// <param name="s_height">码高</param>
 85     void ShowQRCode(string s_str,int s_width,int s_height)
 86     {
 87         //定义Texture2D并且填充
 88         Texture2D tTexture = new Texture2D(s_width, s_height);
 89
 90         //绘制相对应的贴图纹理
 91         tTexture.SetPixels32(GeneQRCode(s_str, s_width, s_height));
 92
 93         tTexture.Apply();
 94
 95         //赋值贴图
 96         m_QRCode.texture = tTexture;
 97     }
 98     /// <summary>
 99     /// 返回对应颜色数组
100     /// </summary>
101     /// <param name="s_formatStr">扫码信息</param>
102     /// <param name="s_width">码宽</param>
103     /// <param name="s_height">码高</param>
104     Color32 [] GeneQRCode(string s_formatStr,int s_width,int s_height)
105     {
106         //设置中文编码格式,否则中文不支持
107         QrCodeEncodingOptions tOptions = new QrCodeEncodingOptions();
108         tOptions.CharacterSet = "UTF-8";
109         //设置宽高
110         tOptions.Width = s_width;
111         tOptions.Height = s_height;
112         //设置二维码距离边缘的空白距离
113         tOptions.Margin = 3;
114
115         //重置申请写二维码变量类       (参数为:码格式(二维码、条形码...)    编码格式(支持的编码格式)    )
116         m_barcodeWriter = new BarcodeWriter{Format =BarcodeFormat.QR_CODE ,Options =tOptions };
117
118         //将咱们需要隐藏在码后面的信息赋值上
119         return m_barcodeWriter.Write(s_formatStr);
120     }
121     #endregion
122
123 }

5.生成的效果图如下:

    

转载于:https://www.cnblogs.com/mrmocha/p/8076154.html

关于Unity调用摄像头扫描二维码与生成二维码的实现方法相关推荐

  1. PC端调用摄像头扫描二维码,拿到二维码信息

    PC端调用摄像头扫描二维码,拿到二维码信息 <template><el-dialogtitle="扫描设备二维码":visible.sync="dial ...

  2. C#生成二维码、调用摄像头扫描二维码

    二维码的生成和解码,有两个开源项目可以参考: 一个是google的zxing,另外一个是ThroughWork. zxing做的很全面,支持各种语言和平台,具体不多讲,自己查去.ThroughWork ...

  3. Android之ZXing扫描二维码以及生成二维码

    Android之ZXing扫描二维码以及生成二维码 ZXIng项目地址:ZXing地址 项目结构 扫描二维码:使用 CaptureActivity类 项目代码: import android.cont ...

  4. 二维码(生成二维码和扫描二维码)超简单 超简易

    二维码(生成二维码和扫描二维码)Zxing 例: 配置权限: 项目下的 build.gradle 文件里加入,7.0版本以后可能会转入settings.gradle文件 pluginManagemen ...

  5. Vue 扫码及生成二维码

    Vue 扫码及生成二维码 最近写了一个扫码签到的小网站,主要用到了Vue的两个相关库 建议大家到官网学习使用方法 我吧我写的实例代码贴在这里了(●'◡'●) vue-qr - npm (npmjs.c ...

  6. 【科普文】二维码的[生成]和[扫码]

    作者:孙辉,美团金融前端团队成员.15年毕业加入美团,相信技术,更相信技术只是大千世界里知识的一种,个人博客: sunyuhui.com 最近这段时间,团队在做的业务主要和二维码相关,在做的过程中,发 ...

  7. 基于Vue3实现扫码枪扫码并生成二维码的代码解析

    基于Vue3实现扫码枪扫码并生成二维码的代码解析 在本文中,我们将介绍如何使用Vue3实现扫码枪扫描条形码或二维码,并将其转换为二维码的过程.这个过程将涉及到以下步骤: 在Vue3项目中安装和导入vu ...

  8. 【vue生成二维码】1.将后端返回的二维码字符串生成二维码;2.下载功能

    vue使用qrcode插件 一.只展示一张图的效果 一.效果图: 二.具体代码: 1.安装 npm i qrcodejs2 --save 2.在页面使用 2.1.html <div id=&qu ...

  9. Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码

    Java 生成二维码 zxing生成二维码 条形码 服务端生成二维码 Java生成条形码 一.关于ZXing 1.ZXing是谷歌开源的支持二维码.条形码 等图形的生成类库:支持生成.和解码功能. G ...

最新文章

  1. Github 简明教程
  2. SVN工具的使用 和在Eclipse中安装GPD插件:(多步审批流,因此选择使用工作流(JBPM)来实现)...
  3. 玩转u-boot之【初探环境变量env/bootcmd/bootargs】
  4. python图标icon_用Python提取exe图标icon
  5. 90行代码让微信地球转起来,太酷了!(python实现)
  6. easyui datagrid 不分页_快递物流管理系统(SSM,JQUERY-EASYUI,MYSQL)
  7. Oracle 高级教程
  8. ios icon 自动生成
  9. 矩阵和POJ 3233
  10. 网站三级域名是什么样?
  11. 网络系统实现技术--AppleTalk
  12. set和hashset区别及用法
  13. 【电路】电容(四)——旁路电容
  14. 前后端分离项目部署(部署在同一台服务器)
  15. reac antd 删除列表
  16. scrapy中用来代替crawl 功能的main文件配置
  17. 使用TensorRT加速YOLOX目标检测算法
  18. NDK开发之JNI基础
  19. 中手游署理《每天炫舞》内测 前进精品手游商场
  20. vs按f5没反应_NBA直播:灰熊vs火箭 死亡五小战过关斩将,本战势在必得

热门文章

  1. 分析一个文本(英文文章)(300k—500k)中的词出现的频率,并且把频率最高的10个词打印出来。...
  2. SharePoint 2013的100个新功能之网站管理(二)
  3. wpf silverlight开发框架(prism)系列教程
  4. java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
  5. vue点击改变data值_vue 中自定义指令改变data中的值
  6. vue-ueditor 后端配置项没有正常加载_揭秘Gannt后端集成问题该如何解决
  7. 电脑下边的任务栏不见了_XP系统任务栏被空白工具栏占领快速删除办法
  8. 链路 英文_光纤链路基础
  9. fgo日服服务器维护,【FGO日服】活动维护通知(1/10)
  10. matlab pdist函数官方详解