// 下面的回调是子线程回调主线程 protected void OnCompleted() { CompletedTime = XTimeTools.NowTimeStampMs; status = AssetDownloadStatus.DOWNLOAD_COMPLETED; CallbackManager.GetInstance()?.QueueOnMainThread((param) => { var task = (AssetDownloadTask)param; onCompleted?.Invoke(task); }, this); }
protected void OnProgress(long cur, long total) { if (m_downloadMgr == null) { return; } Tuple <long, long> bundle = new Tuple <long, long>(cur, total); CallbackManager.GetInstance()?.QueueOnMainThread((param) => { var tuple = (Tuple <long, long>)param; onProgress?.Invoke(tuple.Item1, tuple.Item2); }, bundle); }
protected void OnFinish(string url, string path) { if (m_downloadMgr == null) { return; } Tuple <string, string> bundle = new Tuple <string, string>(url, path); CallbackManager.GetInstance()?.QueueOnMainThread((param) => { var tuple = (Tuple <string, string>)param; onFinish?.Invoke(tuple.Item1, tuple.Item2); }, bundle); //任务结束回调 if (m_downloadMgr.HadDownedCount == m_downloadMgr.TotalNeedDownCount) { OnCompleted(); } }
private void Awake() { CallbackManager.GetInstance(); //唤醒下 }