174 lines
6.1 KiB
C#
174 lines
6.1 KiB
C#
using DG.Tweening.Plugins.Core.PathCore;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using System.Net;
|
||
using System.Text;
|
||
using UnityEngine;
|
||
using UnityEngine.Networking;
|
||
|
||
public static class InterfaceManager
|
||
{
|
||
public static string ConfigureAudioPath { get; } = Application.streamingAssetsPath + "/ConfigurationFile/Configure_Audio.json";
|
||
public static string ConfigureDevicePath { get; } = Application.streamingAssetsPath + "/ConfigurationFile/Configure_Device.json";
|
||
public static string ConfigureApiPath { get; } = Application.streamingAssetsPath + "/ConfigurationFile/Configure_Api.txt";
|
||
#region 接口地址
|
||
public static string IpAddress = "";
|
||
public static string GET_Data = "Data";
|
||
public static string GET_User = "User";
|
||
|
||
public static Dictionary<string, string> API_DIC = new Dictionary<string, string>();
|
||
#endregion
|
||
|
||
|
||
public static IEnumerator Post(string _url, string _post_json_str, Action<string, string> _callback)
|
||
{
|
||
using (UnityWebRequest _request = new UnityWebRequest())
|
||
{
|
||
_request.url = _url;
|
||
_request.method = "POST";
|
||
|
||
_request.downloadHandler = new DownloadHandlerBuffer();
|
||
int _time_out = 0;
|
||
int.TryParse(API_DIC["TIME_OUT"], out _time_out);
|
||
_request.timeout = _time_out;
|
||
|
||
_request.SetRequestHeader("auth_token", GameInit.InfoIni.token);
|
||
_request.SetRequestHeader("Content-Type", "application/json;charset=utf-8");
|
||
byte[] bodyRaw = Encoding.UTF8.GetBytes(_post_json_str);
|
||
_request.uploadHandler = new UploadHandlerRaw(bodyRaw);
|
||
|
||
yield return _request.SendWebRequest();
|
||
|
||
if (_request.error != null)
|
||
{
|
||
Debug.Log("调用接口[" + _url + "]错误!:" + _request.error);
|
||
_callback?.Invoke(_request.url+":["+_request.error+"]", null);
|
||
}
|
||
else
|
||
{
|
||
_callback?.Invoke(null, _request.downloadHandler.text);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
public static IEnumerator Get(string _path, Action<string,string> _callback)
|
||
{
|
||
using (UnityWebRequest _request = UnityWebRequest.Get(_path))
|
||
{
|
||
int _time_out = 0;
|
||
int.TryParse(API_DIC["TIME_OUT"], out _time_out);
|
||
_request.timeout = _time_out;
|
||
_request.SetRequestHeader("auth_token", GameInit.InfoIni.token);
|
||
yield return _request.SendWebRequest();
|
||
if (_request.error != null)
|
||
{
|
||
Debug.Log("调用接口[" + _request.url + "]错误!:" + _request.error);
|
||
_callback?.Invoke(_request.url + ":[" + _request.error + "]", null);
|
||
}
|
||
else
|
||
{
|
||
_callback?.Invoke(null,_request.downloadHandler.text);
|
||
}
|
||
}
|
||
}
|
||
|
||
public static IEnumerator GetDataFullUrl(string url, Action<string> callback)
|
||
{
|
||
using (UnityWebRequest _request = UnityWebRequest.Get(url))
|
||
{
|
||
int _time_out = 0;
|
||
int.TryParse(API_DIC["TIME_OUT"], out _time_out);
|
||
_request.timeout = _time_out;
|
||
yield return _request.SendWebRequest();
|
||
if (_request.error != null)
|
||
{
|
||
Debug.Log("调用接口[" + url + "]错误!:" + _request.error);
|
||
}
|
||
else
|
||
{
|
||
callback?.Invoke(_request.downloadHandler.text);
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 下载图片
|
||
/// </summary>
|
||
/// <param name="_url"></param>
|
||
/// <param name="_callback"></param>
|
||
/// <returns></returns>
|
||
public static IEnumerator GetSprite(string _url, Action<Sprite> _callback)
|
||
{
|
||
using (UnityWebRequest _request = UnityWebRequest.Get(_url))
|
||
{
|
||
int _time_out = 0;
|
||
int.TryParse(API_DIC["TIME_OUT"], out _time_out);
|
||
_request.timeout = _time_out;
|
||
DownloadHandlerTexture _downloadHandlerTexture = new DownloadHandlerTexture(true);
|
||
_request.downloadHandler = _downloadHandlerTexture;
|
||
yield return _request.SendWebRequest();
|
||
if (_request.error != null)
|
||
{
|
||
Debug.Log("调用接口[" + _url + "]错误!:" + _request.error);
|
||
}
|
||
else
|
||
{
|
||
var _texture = _downloadHandlerTexture.texture;
|
||
Sprite _sprite = Sprite.Create(_texture, new Rect(0, 0, _texture.width, _texture.height), new Vector2(0.5f, 0.5f));
|
||
_callback?.Invoke(_sprite);
|
||
}
|
||
}
|
||
}
|
||
|
||
public static IEnumerator GetAudio(string _url, Action<AudioClip> _callback)
|
||
{
|
||
using (var _request = UnityWebRequestMultimedia.GetAudioClip(_url, AudioType.MPEG))
|
||
{
|
||
int _time_out = 0;
|
||
int.TryParse(API_DIC["TIME_OUT"], out _time_out);
|
||
_request.timeout = _time_out;
|
||
yield return _request.SendWebRequest();
|
||
if (_request.error != null)
|
||
{
|
||
Debug.LogError("调用接口[" + _url + "]错误!:" + _request.error);
|
||
}
|
||
else
|
||
{
|
||
_callback?.Invoke(DownloadHandlerAudioClip.GetContent(_request));
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取本地文件
|
||
/// </summary>
|
||
/// <param name="_path"></param>
|
||
/// <param name="_callback"></param>
|
||
public static void GetLocalFiles(string _path, Action<List<FileInfo>> _callback)
|
||
{
|
||
if (Directory.Exists(_path))
|
||
{
|
||
DirectoryInfo direction = new DirectoryInfo(_path);
|
||
FileInfo[] files = direction.GetFiles("*", SearchOption.AllDirectories);
|
||
List<FileInfo> _result = new List<FileInfo>();
|
||
for (int i = 0; i < files.Length; i++)
|
||
{
|
||
if (files[i].Name.EndsWith(".meta"))
|
||
{
|
||
continue;
|
||
}
|
||
_result.Add(files[i]);
|
||
//Debug.Log("Name : " + files[i].Name);
|
||
//Debug.Log("FullName : " + files[i].FullName);
|
||
//Debug.Log("DirectoryName : " + files[i].DirectoryName);
|
||
}
|
||
|
||
_callback?.Invoke(_result);
|
||
}
|
||
}
|
||
|
||
}
|