赞
踩
在游戏开发过程中,经常会遇到需要使用二维码。
本教程将使用ZXing,简单讲述一下在Unity里是如果使用二维码功能的。
Zing库放到网盘里,方便大家下载。
链接:https://pan.baidu.com/s/1Uf9ZqpuymL1B2W0bHhmPZA?pwd=85vr
提取码:85vr
public class Game : MonoBehaviour { //发送按钮 public Button sendBtn; //输入框 public TMP_InputField info; //展示二维码 public RawImage QRCode; void Start() { sendBtn.onClick.AddListener(DrawQRCode); } /// <summary> /// 开始绘制指定信息的二维码 /// </summary> /// <param name="formatStr"></param> void DrawQRCode() { //注意:这个宽高度大小256不要变。不然生成的信息不正确 //256有可能是这个ZXingNet插件指定大小的绘制像素点数值 Texture2D t = ShowQRCode(info.text, 256, 256); //显示到UI界面的图片上 QRCode.texture = t; } /// <summary> /// 根据二维码图片信息绘制指定字符串信息 /// </summary> /// <param name="str">字符串信息</param> /// <param name="width">二维码的宽度</param> /// <param name="height">二维码的高度</param> /// <returns>返回绘制好的图片</returns> Texture2D ShowQRCode(string str, int width, int height) { //实例化一个图片类 Texture2D t = new Texture2D(width, height); //获取二维码图片颜色数组信息 Color32[] col32 = GeneQRCode(str, width, height); //为图片设置绘制像素颜色信息 t.SetPixels32(col32); //设置信息更新应用下 t.Apply(); return t; } /// <summary> /// 将制定字符串信息转换成二维码图片信息 /// </summary> /// <param name="formatStr">字符串信息</param> /// <param name="width">二维码的宽度</param> /// <param name="height">二维码的高度</param> /// <returns>返回二维码图片的颜色数组信息</returns> Color32[] GeneQRCode(string formatStr, int width, int height) { //绘制二维码前进行一些设置 ZXing.QrCode.QrCodeEncodingOptions options = new ZXing.QrCode.QrCodeEncodingOptions(); //设置字符串转换格式 options.CharacterSet = "UTF-8"; // 宽度和高度 options.Width = width; options.Height = height; //设置二维码边缘留白宽度 options.Margin = 1; //实例化字符串绘制二维码工具 BarcodeWriter barcodeWriter = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = options }; //进行二维码绘制并进行返回图片的颜色数组信息 return barcodeWriter.Write(formatStr); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。