using System.Collections; using System.Collections.Generic; using UnityEngine; using AX.NetworkSystem; using System; using System.IO; using AX.Network.Protocols; using AX.Serialization; public class DownloadFileTest : MonoBehaviour { public string Fullname; public string Filename; private string progress; private bool completed; private void Start() { if (Fullname == null || Filename == null) throw new ArgumentNullException(Fullname + " | " + Filename); NetworkMessageDispatcher.AddListener("ERROR", OnError); } private void OnDestroy() { NetworkMessageDispatcher.RemoveListener("ERROR", OnError); } private void OnError(BinaryMessage message) { var error = message.Body.Deserialize(); if (error.ErrorCode == 404) Debug.LogError(error.ErrorMessage); } private void OnGUI() { GUILayout.BeginArea(new Rect(0, 0, 600, 400)); GUILayout.BeginVertical(); if (GUILayout.Button("下载文件" + "{" + Filename + "}")) { NetworkManager.Default.DownloadFileAsync(Fullname, Filename, null, OnProgressChanged, OnCompleted); } GUILayout.BeginHorizontal(); GUILayout.Label(Fullname + ": 进度 "); GUILayout.Label(progress + ", 完成 "); GUILayout.Label(completed ? "√" : "×"); GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndArea(); } private void OnCompleted(string fullname, string filename) { completed = true; } private void OnProgressChanged(string fullname, string filename, float progress) { this.progress = progress.ToString(); } }