NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/GameWrapper/AppConfigDownload.cs

58 lines
1.4 KiB
C#

using UnityEngine;
using UnityEngine.Networking;
using PhxhSDK.AOT.PreConfig;
using Cysharp.Threading.Tasks;
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)
{
GetRequest().Forget();
Status = LocalStatus.Wait;
}
else if (Status == LocalStatus.Done)
{
Destroy(gameObject);
}
}
async UniTask GetRequest()
{
DebugUtil.Log("Start GetRequest:" + m_handler.URL);
using UnityWebRequest webRequest = UnityWebRequest.Get(await PreConfig.instance.GetAppConfigUrl());
// Request and wait for the desired page.
await webRequest.SendWebRequest();
m_handler.OnRequestFinished(webRequest);
Status = LocalStatus.Done;
}
}
}