当前位置:   article > 正文

Unity截图上传到服务器,并且产生二维码供玩家扫描下载_unity 拍照返回二维码

unity 拍照返回二维码

1.首先在服务器端配置好环境,这里使用PhpStudy进行环境的安装

2.现在开始客户端的代码制作

我们现在要做软件是:截图>上传到服务器>返回二维码

https://cli.im/api/qrcode/code?text=http:///XXXXXXXXXX/UpLoad/upload/" + i.ToString() + ".png&mhid=5EqSDQzsmc0hMHcsKNZTMao"

《放一下服务器接收文件    点击下载

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class Test : MonoBehaviour {
  6. string url = "http://XXXXXXXXXX/UpLoad/UnityUpload.php";//服务器地址
  7. public Button SaveBtn;
  8. public Button QRcode;
  9. public RawImage m_raw;
  10. string uploadName;
  11. int i;
  12. string path;
  13. string downloadName;
  14. Texture2D m_downloadTex;
  15. // Use this for initialization
  16. void Start () {
  17. SaveBtn.onClick.AddListener(delegate() {
  18. StartCoroutine(UploadScreen());
  19. });
  20. QRcode.onClick.AddListener(delegate ()
  21. {
  22. StartCoroutine(Qrcodse());
  23. });
  24. }
  25. // Update is called once per frame
  26. void Update () {
  27. }
  28. public Texture2D Screenshot()//截屏
  29. {
  30. int width = Screen.width;
  31. int height = Screen.height;
  32. Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
  33. tex.ReadPixels(new Rect(0, 0, width, height), 0, 0, false);
  34. tex.Apply();
  35. return tex;
  36. }
  37. IEnumerator UploadScreen()//上传图片
  38. {
  39. yield return new WaitForEndOfFrame();
  40. byte[] bytes = Screenshot().EncodeToPNG();
  41. WWWForm form = new WWWForm();
  42. form.AddField("Name", UploadNameStr());
  43. form.AddBinaryData("post", bytes);
  44. WWW www = new WWW(url, form);
  45. StartCoroutine(PostData(www));
  46. System.IO.File.WriteAllBytes(path, bytes);
  47. }
  48. public string UploadNameStr()//
  49. {
  50. path = Application.dataPath + "/" + i.ToString() + ".jpg";
  51. uploadName = i.ToString();
  52. downloadName = ";//将服务器地址通过草料API转换成为二维码
  53. i++;
  54. if (i > 3)
  55. i = 0;
  56. Debug.Log(uploadName);
  57. return uploadName;
  58. }
  59. IEnumerator PostData(WWW www)//接受服务器返回的信息
  60. {
  61. yield return www;
  62. Debug.Log(www.text);
  63. }
  64. IEnumerator Qrcodse()
  65. {
  66. WWW w = new WWW(downloadName);
  67. yield return w;
  68. print(w.text);
  69. //获取'src=" //' 后所有的数据
  70. string s = w.text.Substring(w.text.IndexOf("<img src=") + 12, w.text.Length - (w.text.IndexOf("<img src=") + 12));
  71. //截取src="" 内部的链接地址,不包括'//'
  72. string result = s.Substring(0, s.IndexOf("\""));
  73. print(result);
  74. StartCoroutine(ReturnQR(result));
  75. }
  76. IEnumerator ReturnQR(string re)//返回二维码
  77. {
  78. WWW ww = new WWW(re);
  79. yield return ww;
  80. m_downloadTex = ww.texture;
  81. m_raw.texture = m_downloadTex;
  82. }
  83. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/715876
推荐阅读
相关标签
  

闽ICP备14008679号