最近項目有用到二維碼,所以花了半天時間研究了一下,特此分享。
第一部分、
二維碼的生成
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字符串爲識別二維碼後的信息
注:
最近有個項目又用到了這兩項技術,有個很合適的插件,分享一下(2018.11.26)
鏈接:https://pan.baidu.com/s/15E9vMFrb545mY818VVCk2Q
版權聲明:
本教程僅供學習研究參考,不得進行任何商業用途,否則產生的一切後果將由使用者本人承擔!教程作者不對任何資源負法律責任,所有資源請在下載後24小時內刪除。如果你覺得滿意,請購買正版軟件資源!!!