版权声明:欢迎任何形式的转载,但请务必注明出处。由于鄙人水平有限,如果文章或代码有表述不当之处,还请不吝赐教。 https://blog.csdn.net/qq_36458268/article/details/70258080
最近项目有用到二维码,所以花了半天时间研究了一下,特此分享。
第一部分、
二维码的生成
1.下载工具
ZXing.Net.0.14.0.0.zip 二维码生成库,链接:https://pan.baidu.com/s/1TTY86APBBs7ptOGOV2OejA 密码: 7vh8 (2018.6.29更新)
解压,把unity文件下的三个文件放到自己的工程Plugins文件夹下
2.新建脚本QRcodeDraw.cs
using UnityEngine;
using System.Collections;
using ZXing;
using ZXing.QrCode;
using UnityEngine.UI;
public class QRcodeDraw : MonoBehaviour
{
public Texture2D encoded;
//指定字符串
public string QRCodes="www.csdn.net";
public RawImage QRImage;
void Start()
{
ShowCode ();
}
//定义方法生成二维码
private static Color32[] Encode(string textForEncoding, int width, int height)
{
var writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,
Options = new QrCodeEncodingOptions
{
Height = height,
Width = width
}
};
return writer.Write(textForEncoding);
}
public void ShowCode()
{
encoded = new Texture2D(256, 256);
var textForEncoding = QRCodes;
if (textForEncoding != null)
{
//二维码写入图片
var color32 = Encode(textForEncoding, encoded.width, encoded.height);
encoded.SetPixels32(color32);
encoded.Apply();
//重新赋值一张图,计算大小,避免白色边框过大
Texture2D encoded1;
encoded1 = new Texture2D(190, 190);//创建目标图片大小
encoded1.SetPixels(encoded.GetPixels(32, 32, 190, 190));
encoded1.Apply();
QRImage.texture = encoded1;
}
}
// void OnGUI()
// {
// GUI.DrawTexture(new Rect(100, 100, 256, 256), encoded1);
// }
}
第二部分、
二维码识别
1.下载Easy Code Scanner.unitypackage,链接: https://pan.baidu.com/s/1kUGqOon 密码: cjr4
2.把下载的包拖入工程中,找到EasyCodeScanner的scene的文件,Main Camera上面挂在的EasyCodeScannerExample就是识别二维码的代码,dataStr字符串为识别二维码后的信息
版权声明:
本教程仅供学习研究参考,不得进行任何商业用途,否则产生的一切后果将由使用者本人承担!教程作者不对任何资源负法律责任,所有资源请在下载后24小时内删除。如果你觉得满意,请购买正版软件资源!!!