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() { Debug.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; } } }