close

可用於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上,按下執行!

arrow
arrow
    全站熱搜

    Yang 發表在 痞客邦 留言(1) 人氣()