在网络上发现了一个可以把字符串转换成二维码的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
亲测,安卓和苹果都可以使用