Unity3d 打开本地摄像头扫描二维码

2017-11-20  本文已影响0人  Nmao

首先 下载ZXing.Net.0.12.0.0.zip,下载地址为http://zxingnet.codeplex.com/。

’解压找到unity文件夹,然后将其放到unity工程。

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();

}

}

}

注意::::http://www.cnblogs.com/laugher/p/5757759.html

上一篇下一篇

猜你喜欢

热点阅读