【Unity3D】二维码的识别与生成

本文介绍了如何在Unity3D中实现二维码的生成与识别。首先,通过ZXing.Net库来创建二维码,然后利用Easy Code Scanner插件进行二维码的扫描识别。教程提供了相关资源的下载链接,并提醒读者注意版权问题,仅限学习研究使用。
摘要由CSDN通过智能技术生成

最近项目有用到二维码,所以花了半天时间研究了一下,特此分享。

第一部分、

二维码的生成

1.下载工具

ZXing.Net.0.14.0.0.zip 二维码生成库,链接:百度网盘 请输入提取码  密码: 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字符串为识别二维码后的信息

注:

最近有个项目又用到了这两项技术,有个很合适的插件,分享一下(2018.11.26)

链接:百度网盘 请输入提取码

版权声明:
本教程仅供学习研究参考,不得进行任何商业用途,否则产生的一切后果将由使用者本人承担!教程作者不对任何资源负法律责任,所有资源请在下载后24小时内删除。如果你觉得满意,请购买正版软件资源!!!


 

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值