///////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////离线拷贝///////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////// using LitJson; using System.Collections; using System.IO; using System.Text; using UnityEngine; using UnityEngine.Networking; public class OfflineCopy : MonoBehaviour { float timers; void Start() { Invoke("GetVideoInfo", 1f); } //每十分钟获取一次资源信息 private void Update() { timers += Time.deltaTime; if (timers >= 600f) { timers = 0f; GetVideoInfo(); } } /// /// 获取资源信息,并记录到本地 /// public void GetVideoInfo() { if (Directory.Exists(Config.AllAssetsInfoPath)) { Directory.Delete(Config.AllAssetsInfoPath, true); } GameTools.CreateDirectory(Config.AllAssetsInfoPath); StartCoroutine(GetJsonData()); } //获取资源信息 IEnumerator GetJsonData() { //检查网络是否可以访问 using (UnityWebRequest request = UnityWebRequest.Get("http://www.baidu.com")) { yield return request.SendWebRequest(); if (request.result != UnityWebRequest.Result.Success) { //ClientManager._Instance.ShowLog("网络无法访问"); yield break; } else { ////ClientManager._Instance.ShowLog("网络可用"); } } WWWForm form = new WWWForm(); WebNet.Encrypt(Config.SN); //Debug.Log(WebNet.s);//加密前字符串 //Debug.Log(WebNet.Authorization);//加密后token form.AddField("deviceSN", Config.SN); form.AddField("password", WebNet.password); using (UnityWebRequest req = UnityWebRequest.Post(WebNet.assetsUrl, form)) { yield return req.SendWebRequest(); JsonData jsonData = JsonMapper.ToObject(req.downloadHandler.text); //Debug.Log(jsonData["code"]); //Debug.Log(jsonData["msg"]); if (jsonData["code"].ToString() == "200") { JsonData data = jsonData["data"]; JsonData video = data["video"]; for (int i = 0; i < video.Count; i++) { Assets videoData = new Assets(); videoData.resource_id = int.Parse(video[i]["resource_id"].ToString()); videoData.resource_name = video[i]["resource_name"].ToString(); videoData.url = video[i]["url"].ToString(); videoData.brief = video[i]["brief"].ToString(); videoData.icon = video[i]["icon"].ToString(); videoData.file_size = int.Parse(video[i]["file_size"].ToString()); videoData.group_id = int.Parse(video[i]["group_id"].ToString()); videoData.group_name = video[i]["group_name"].ToString(); videoData.device_id = int.Parse(video[i]["device_id"].ToString()); videoData.play_time = int.Parse(video[i]["play_time"].ToString()); videoData.province = video[i]["province"].ToString(); videoData.city = video[i]["city"].ToString(); videoData.updated_at = video[i]["updated_at"].ToString(); //Debug.Log("资源id:" + videoData.resource_id); //Debug.Log("资源名字:" + videoData.resource_name); //Debug.Log("资源地址:" + videoData.url); //Debug.Log("资源简介:" + videoData.brief); //Debug.Log("资源缩略图:" + videoData.icon); //Debug.Log("资源大小:" + videoData.file_size); //Debug.Log("资源分组id:" + videoData.group_id); //Debug.Log("资源名称:" + videoData.group_name); //Debug.Log("设备id:" + videoData.device_id); //Debug.Log("播放次数:" + videoData.play_time); //Debug.Log("分组所属省份:" + videoData.province); //Debug.Log("分组所属城市:" + videoData.city); //Debug.Log("更新日期:" + videoData.updated_at); RecordInfo(videoData); } } } } /// /// 记录资源信息 /// void RecordInfo(Assets videoData) { string json = JsonUtility.ToJson(videoData); byte[] bytes = Encoding.UTF8.GetBytes(json); string path = Path.Combine(Config.AllAssetsInfoPath, $"{videoData.resource_name}.json"); GameTools.WriteFile(path, bytes); } }