123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- using LitJson;
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- using UnityEngine.Rendering;
- using XRTool.Util;
- using static XunJianDataManager;
- public class PaiZhaoDataManager : Singleton<PaiZhaoDataManager>
- {
- List<paizhaoData> paizhaoList = new List<paizhaoData>();
- public void addImage(Texture tex)
- {
- WindowsManager.Instance.StartCoroutine(GetTextureTo2D(tex));
- }
- IEnumerator GetTextureTo2D(Texture tex)
- {
- var req = AsyncGPUReadback.Request(tex,0, TextureFormat.ARGB32);
- yield return new WaitUntil(() => req.done);
- if (!req.hasError)
- {
- byte[] bts = new byte[req.layerDataSize];
- req.GetData<byte>().CopyTo(bts);
- Texture2D texture2D = new Texture2D(tex.width, tex.height, TextureFormat.ARGB32, false);
- texture2D.LoadRawTextureData(bts);
- bts = texture2D.EncodeToPNG();
- WindowsManager.Instance.DestroyText2D(texture2D);
- Debug.Log("准备存文件===》" + bts.Length);
- int count = 0;
- if(Directory.Exists(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex))
- count= Directory.GetFiles(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex).Length;
-
-
- Stream sw;
- string name = count+".png";
- string path = Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex + "/" + name;
- Debug.Log("准备存文件===》" + path);
- FileInfo file = new FileInfo(path);
- try
- {
- if (file.Exists)
- {
- file.Delete();
- }
- if (!Directory.Exists(Application.persistentDataPath + "/PaiZhao"))
- {
- Directory.CreateDirectory(Application.persistentDataPath + "/PaiZhao");
- }
- if (!Directory.Exists(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id))
- {
- Directory.CreateDirectory(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id);
- }
- if (!Directory.Exists(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex))
- {
- Directory.CreateDirectory(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex);
- }
-
-
-
- sw = file.Create();
-
-
- sw.Write(bts, 0, bts.Length);
- sw.Close();
- sw.Dispose();
- paizhaoData data = new paizhaoData();
- data.url = path;
- paizhaoList.Add(data);
- PaiZhaoManager.Instance.addVidew(data);
- }
- catch
- {
-
- JsonData data = new JsonData();
- data["type"] = "fileError";
- List<string> backTip = new List<string>();
- backTip.Add(data.ToJson());
- backTip.Add(data.ToJson());
- backTip.Add(data.ToJson());
- WindowsManager.Instance.show(WindowConfig.windowType.Error, false, WindowsManager.Instance.getErrorData("提示", "采集失败"+ path, Color.white, "icon", backTip, false, "", 5, "知道了.", "", "").ToJson());
-
- }
-
-
-
-
- }
- else
- {
- Debug.LogError("Error AsyncGPUReadbackRequest.hasError");
- }
- }
- public List<paizhaoData> updateFile()
- {
- if (XunJianDataManager.Instance!=null&& XunJianDataManager.Instance.chooseXunJian!=null)
- {
- paizhaoList.Clear();
- if (Directory.Exists(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex))
- {
- string[] files = Directory.GetFiles(Application.persistentDataPath + "/PaiZhao/" + XunJianDataManager.Instance.chooseXunJian.id + "/" + XunJianDataManager.Instance.chooseXunJian.nowIndex);
- for (int i = 0; i < files.Length; i++)
- {
- paizhaoData data = new paizhaoData();
- data.url = files[i];
- paizhaoList.Add(data);
- }
- }
- }
- return paizhaoList;
- }
- public class paizhaoData
- {
- public string url;
- }
- }
|