Unity生成简易二维码
来源:net 网络用户发布,如有版权联系网管删除 2018-07-12
最近项目需求,需要在Unity中动态生成二维码。所以就研究了一下,下面把动态生成二维码的方法向大家分享一下。
第一种方法
需要一个ZXing.dll文件。
下载地址我会在文章结尾给出。
直接将下载好的dll文件导入到Unity工程中即可,下面一起来看一下如何通过使用ZXing.dll来生成二维码吧。
创建一个场景,在场景中放置一个RawImage用来显示二维码。
接下来就编写一个CreatQR.cs脚本挂载到Canvas上就可以了。直接上脚本:
这里要注意命名空间的引用。
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEngine.UI; 5 using ZXing; 6 using ZXing.QrCode; 7 8 public class CreatQR : MonoBehaviour { 9 10 //需要生产二维码的字符串数组 11 string[] QrCodeStr = { "https://www.baidu.com/", "https://www.cnblogs.com/Mr-Miracle/", "https://unity3d.com/cn", "https://www.sogou.com/" };12 //在屏幕上显示二维码 13 public RawImage image;14 //存放二维码 15 Texture2D encoded;16 int Nmuber = 0;17 // Use this for initialization 18 void Start()19 {20 21 encoded = new Texture2D(256, 256);22 }23 24 // Update is called once per frame 25 void Update()26 {27 if (Input.GetKeyDown(KeyCode.Space))28 {29 Btn_CreatQr();30 Nmuber++;31 if (Nmuber >= QrCodeStr.Length)32 {33 Nmuber = 0;34 }35 }36 }37 38 /// 39 /// 定义方法生成二维码 40 /// 41 /// 需要生产二维码的字符串42 /// 宽43 /// 高44 /// 45 private static Color32[] Encode(string textForEncoding, int width, int height)46 {47 var writer = new BarcodeWriter48 {49 Format = BarcodeFormat.QR_CODE,50 Options = new QrCodeEncodingOptions51 {52 Height = height,53 Width = width54 }55 };56 return writer.Write(textForEncoding);57 }58 59 60 /// 61 /// 生成二维码 62 /// 63 public void Btn_CreatQr()64 {65 66 if (QrCodeStr[Nmuber].Length > 1)67 {68 //二维码写入图片 69 var color32 = Encode(QrCodeStr[Nmuber], encoded.width, encoded.height);70 encoded.SetPixels32(color32);71 encoded.Apply();72 //生成的二维码图片附给RawImage 73 image.texture = encoded;74 }75 else76 {77 GameObject.Find("Text_1").GetComponent().text = "没有生成信息";78 }79 }80 }
好啦,接下来看一下运行结果吧。
第二种方法。
自认为有点讲述不太清楚,所以给大家一个网址,可以自行前往学习
学习第二种方法网址:在这里
第一种方法的dll文件及工程文件下载地址 链接:网盘下载地址密码:8djo
查看评论 回复
"Unity生成简易二维码"的相关文章
- 上一篇:Unity中容易被忽略的小技巧
- 下一篇:Unity3D之AR开发(一)