NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Net/Client/AppConfigDownload.cs

59 lines
1.2 KiB
C#

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
namespace Gameplay.Net
{
public interface ACDownloadHanlder
{
string URL {get;}
void OnRequestFinished(UnityWebRequest request);
}
public class AppConfigDownload : MonoBehaviour
{
enum LocalStatus
{
None = 0,
Start,
Wait,
Done,
}
ACDownloadHanlder m_handler;
LocalStatus Status;
public void Init(ACDownloadHanlder handler)
{
m_handler = handler;
Status = LocalStatus.Start;
}
void Update()
{
if(Status == LocalStatus.Start)
{
StartCoroutine(GetRequest());
Status = LocalStatus.Wait;
}
else if(Status == LocalStatus.Done)
{
Destroy(gameObject);
}
}
IEnumerator GetRequest()
{
Debug.Log("Start GetRequest:" + m_handler.URL);
using (UnityWebRequest webRequest = UnityWebRequest.Get(m_handler.URL))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
m_handler.OnRequestFinished(webRequest);
Status = LocalStatus.Done;
}
}
}
}