You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
4 years ago
|
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<ErrorInfo>();
|
||
|
|
||
|
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();
|
||
|
}
|
||
|
}
|