Unity中创建二维码

时间:2023-01-02 15:31:12

在网络上发现了一个可以把字符串转换成二维码的dll,但是我们要怎么使用他呢。不废话,直接进入主题。

用到的引用

using UnityEngine;
using ZXing;
using ZXing.QrCode;

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

如上面代码所示,dll给我们提供了一个方法,这个方法需要我们传人一段字符串和需要生成的色块的大小,他对应就会给我们生成一个二维码色块。当然有了色块,我们就可以和容易应用在Unity中了。

     public Texture2D encoded;//生成出来的二维码图片
public Texture2D encoded1;//剪切后的二维码图片
string url = "www.baidu.com";//要生成的二维码字符串
void Start()
{
encoded = new Texture2D(, );//创建一张图
UpdateQrCode(url);
}
public void UpdateQrCode(string QRSting)
{
if (QRSting == null || QRSting == "")
{
Debug.LogWarning(QRSting+" ");
QRSting = "www.baidu.com";
}
string textForEncoding = QRSting;
if (textForEncoding != "")
{
Color32[] color = Encode(textForEncoding, encoded.width, encoded.height);
encoded.SetPixels32(color);
encoded.Apply();
}
encoded1 = new Texture2D(, );//创建目标图片大小
encoded1.SetPixels(encoded.GetPixels(, , , ));//获取对应的色块并设置在新的图片上
encoded1.Apply();
transform.GetComponentInChildren<UITexture>().mainTexture = encoded1;//设置在Unity组件上
}

dll下载地址:http://files.cnblogs.com/files/jenke/%E4%BA%8C%E7%BB%B4%E7%A0%81dll.rar

亲测,安卓和苹果都可以使用