private static void WaitUnloadTask <T>(AsyncOperationHandle <T> operation, Action <float> pProgress = null, Action <bool> pOnCompleted = null) { WaitUtil.Start(new WaitUtil.ConditionEvent() { triggerCondition = () => operation.IsDone, onUpdate = () => { if (pProgress != null) { pProgress(operation.PercentComplete); } }, onTrigger = () => { if (pOnCompleted != null) { pOnCompleted(true); } if (operation.Status == AsyncOperationStatus.Failed) { Debug.LogError("Failed to unload asset: " + operation.OperationException.ToString()); } }, }); }
public static void CheckServerTime(Action <bool> pOnFinished) { if (mCheckingTime) { return; } string url = "https://showcase.api.linx.twenty57.net/UnixTime/tounix?date=now"; //var form = new WWWForm(); UnityWebRequest.ClearCookieCache(); var request = UnityWebRequest.Get(url); request.SendWebRequest(); mCheckingTime = true; WaitUtil.Start(() => request.isDone, () => { mCheckingTime = false; if (request.isNetworkError) { pOnFinished.Raise(false); } else { if (request.responseCode == 200) { var text = request.downloadHandler.text; long unixTime = 0; if (long.TryParse(text, out unixTime)) { mStartServerTime = Config.UnixTimeStampToDateTime(unixTime); } mAppTimeWhenGetServerTime = Time.unscaledTime; pOnFinished.Raise(true); } else { pOnFinished.Raise(false); } } }); }
public void Start() { WaitUtil.Start(this); }