unity 识别二维码

使用之前先下载ZXing插件,下载地址:https://download.csdn.net/download/qq_33515628/10297958

using UnityEngine;

using System.Collections;
using ZXing;
using UnityEngine.UI;


public class QRcode : MonoBehaviour
{
    public Color32[] data;
    private bool isScan;
    public RawImage cameraTexture;
    public Text txtQRcode;
    private WebCamTexture webCameraTexture;
    private BarcodeReader barcodeReader;
    private float timer = 0;


    IEnumerator Start()
    {
        barcodeReader = new BarcodeReader();
        yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
        if (Application.HasUserAuthorization(UserAuthorization.WebCam))
        {
            WebCamDevice[] devices = WebCamTexture.devices;
            string devicename = devices[0].name;
            webCameraTexture = new WebCamTexture(devicename, 400, 300);
            cameraTexture.texture = webCameraTexture;
            webCameraTexture.Play();
            isScan = true;
        }


    }




    void Update()
    {
        if (isScan)
        {
            timer += Time.deltaTime;


            if (timer > 0.5f) //0.5秒扫描一次
            {
                StartCoroutine(ScanQRcode());
                timer = 0;
            }
        }


    }


    IEnumerator ScanQRcode()
    {
        data = webCameraTexture.GetPixels32();
        DecodeQR(webCameraTexture.width, webCameraTexture.height);
        yield return new WaitForEndOfFrame();
    }


    private void DecodeQR(int width, int height)
    {
        var br = barcodeReader.Decode(data, width, height);
        if (br != null)
        {
            txtQRcode.text = br.Text;
            isScan = false;
            webCameraTexture.Stop();
        }
    }

}

本来是打算识别微信公众号的二维码,但是微信公众号这个功能没有开发,晒出来,供大家参考。

猜你喜欢

转载自blog.csdn.net/qq_33515628/article/details/79627712