/* ?????????????######### ????????????????????????????????????############ ??????????????????????????????????############# ????????????????????????????????## ?########### ??????????????????????????????### ?###### ##### ?????????????????????????????### ####### ??#### ???????????????????????????### ?########## #### ?????????????????????????#### ?########### #### ???????????????????????#### ??########### ?##### ????????????????????##### ??### ######## ??##### ?????????????????##### ??### ??######## ??###### ??????????????###### ??### ?########### ??###### ???????????###### ??#### ############## ?###### ?????????####### ?##################### ?###### ????????####### ?###################### ?###### ??????####### ?###### ################# ?###### ?????####### ?###### ###### ######### ??###### ?????####### ???## ?###### ??###### ????###### ?????####### ???????###### ???##### ????##### ???????###### ???????##### ????##### ????#### ?????????##### ???????#### ?????##### ????### ???????????##### ??????### ???????### ?????# ???????????????### ??????### ???????### ??????????????????????## ??????### ???????### ??????????????__________#_______####_______####______________ ???身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。 ???????????????我们的未来没有BUG ?????????????* ==============================================================================* Filename: camRocode* Created: ?$time$* Author: ??WYC* Purpose: ?掃描二維碼加載圖片* ==============================================================================*/using UnityEngine;using System.Collections;using UnityEngine.UI;using ZXing;public class camRocode : MonoBehaviour { ???[Header("UI")] ???public Image image; ???public RawImage cameraTexture; ???public Text txt; ???private Color32[] data; ???private bool IsScan; ???private WebCamTexture webCameraTexture; ???private BarcodeReader barcodeReader; ???private float timer = 0; ???IEnumerator Start() ???{ ???????barcodeReader = new BarcodeReader(); ???????yield return Application.RequestUserAuthorization(UserAuthorization.WebCam); ???????if (Application.HasUserAuthorization(UserAuthorization.WebCam)) ???????{ ???????????WebCamDevice[] devices = WebCamTexture.devices; ???????????string devicename = devices[0].name; ???????????webCameraTexture = new WebCamTexture(devicename, 400, 300); ???????????cameraTexture.texture = webCameraTexture; ???????????webCameraTexture.Play(); ???????????IsScan = true; ???????} ???} ???int width; ???void ScreenChange()//屏幕横竖屏切换 ???{ ???????if (width == Screen.width) ???????????return; ???????width = Screen.width; ???????if (width > Screen.height) ???????{ ???????????cameraTexture.transform.localEulerAngles = Vector3.zero; ???????} ???????else ???????{ ???????????cameraTexture.transform.localEulerAngles = new Vector3(0, 0, -90); ???????} ???} ???void Update() ???{ ???????if (IsScan) ???????{ ???????????timer += Time.deltaTime; ???????????if (timer > 0.5f) //0.5秒扫描一次 ???????????{ ???????????????StartCoroutine(ScanQRcode()); ???????????????timer = 0; ???????????} ???????} ??????// ScreenChange(); ???} ???IEnumerator ScanQRcode() ???{ ???????data = webCameraTexture.GetPixels32(); ???????DecodeQR(webCameraTexture.width, webCameraTexture.height); ???????yield return new WaitForEndOfFrame(); ???} ???private void DecodeQR(int width, int height) ???{ ???????var br = barcodeReader.Decode(data, width, height); ???????if (br != null) ???????{ ???????????//txt.text = br.Text; ???????????//IsScan = false; ???????????StartCoroutine(Load(br.Text)); ???????} ???} ???IEnumerator Load(string text) ???{ ???????txt.text = "正在加載"; ???????//请求WWW ???????WWW www = new WWW(text); ???????yield return www; ???????if (www != null && string.IsNullOrEmpty(www.error)) ???????{ ???????????//获取Texture ???????????Texture2D texture = www.texture; ???????????//创建Sprite ???????????Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); ???????????image.sprite = sprite; ???????????txt.text = "加載成功"; ???????} ???}}
扫描二维码加载网页图片
原文地址:http://www.cnblogs.com/mclll520/p/7891873.html