赞
踩
现在ZXing插件并导入到Unity 中,在场景中加一个RawImage
1、使用ZXing生成二维码的第一种方法,新建脚本命名为QrCodeDraw并挂在RawImage上:
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using ZXing;
- using ZXing.Common;
- using ZXing.QrCode;
-
- /// <summary>
- /// 第一种生成二维码方法
- /// </summary>
- public class QrCodeDraw : MonoBehaviour
- {
-
- private Texture2D enCodedTexture;
- private string qrCodePath;
- public RawImage rawIMg;
- // Start is called before the first frame update
- void Start()
- {
- enCodedTexture = new Texture2D(512, 512);
- qrCodePath = "https://www.baidu.com/";
- Encode(qrCodePath, 512, 512);
- }
-
- void Encode(string content, int width, int height)
- {
- MultiFormatWriter writer = new MultiFormatWriter();
- Dictionary<EncodeHintType, object> hints = new Dictionary<EncodeHintType, object>();
- hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
- BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
-
- //转换成texture2d
- int w = bitMatrix.Width;
- int h = bitMatrix.Height;
- Texture2D texture = new Texture2D(w, h);
- for (int x = 0; x < h; x++)
- {
- for (int y = 0; y < w; y++)
- {
- if (bitMatrix[x, y])
- {
- texture.SetPixel(y, x, Color.black);
- }
- else
- {
- texture.SetPixel(y, x, Color.white);
- }
- }
- }
- texture.Apply();
- rawIMg.texture = texture;
- }
-
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
2、使用ZXing生成二维码的第二种方法,新建脚本命名为QrCodeDraw1并挂在RawImage上
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using ZXing;
- using ZXing.QrCode;
-
- public class QrCodeDraw1 : MonoBehaviour
- {
- private string qrCodePath = "https://cn.bing.com/?mkt=zh-CN";
- private Texture texture;
- public RawImage rawImg;
- // Start is called before the first frame update
- void Start()
- {
- texture= CreatQR_texture(qrCodePath);
- rawImg.texture = texture;
- }
-
- 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 static Texture CreatQR_texture(string message)
- {
- Texture2D encoded;
- encoded = new Texture2D(256, 256);
- if (message.Length > 1)
- {
- //二维码写入图片
- var color32 = Encode(message, encoded.width, encoded.height);
- encoded.SetPixels32(color32);
- encoded.Apply();
- }
- else
- {
- Debug.Log("生成二维码失败");
- }
- return encoded;
- }
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。