可用於PC或Android平台
解碼的部分請看這篇
先來下載ZXing並解壓縮,將 zxing.unity.dll 放入專案內的任意位置(路徑為 ZXing\unity\zxing.unity.dll )
之後開啟一個新的Unity專案,只留下Camera,且創造一個C#腳本,命名為Test
開啟Test腳本,寫入以下程式碼
using UnityEngine;
using System.Collections;
using ZXing;
using ZXing.QrCode;
public class Test : MonoBehaviour
{
private Texture2D encoded;//儲存QR Code圖片
private string QRCodeString;//儲存要轉為QR Code的字串
void Start ()
{
encoded = new Texture2D(256, 256);//設定QR Code圖片大小
QRCodeString = "https://www.google.com";//要轉為QR Code的字串,在此使用google的英文首頁
}
void Update()
{
Color32[] color32 = useEncode(QRCodeString, encoded.width, encoded.height);//儲存產生的QR Code
encoded.SetPixels32(color32);//設定要顯示的圖片像素
encoded.Apply();//申請顯示圖片
}
/// <summary>
/// 將字串進行編碼動作(字串轉QR Code),回傳值為Color32[]
/// </summary>
/// <param name="textForEncoding">要被轉換成QR Code的字串</param>
/// <param name="width">QR Code的寬度</param>
/// <param name="height">QR Code的高度</param>
/// <returns></returns>
private Color32[] useEncode(string textForEncoding, int width, int height)
{
//開始進行編碼動作
BarcodeWriter writer = new BarcodeWriter
{
Format = BarcodeFormat.QR_CODE,//設定格式為QR Code
Options = new QrCodeEncodingOptions//設定QR Code圖片寬度和高度
{
Height = height,
Width = width
}
};
return writer.Write(textForEncoding);//將字串寫入,同時回傳轉換後的QR Code
}
void OnGUI()
{
//將QR Code繪製到畫面上
GUI.DrawTexture(new Rect(100, 100, 256, 256), encoded);
}
}
完成後將腳本拖曳到Camera上,按下執行!