public void ExeCoroutineTask(Action startFunc, Action <object> callBack, object pararm) { if (m_bIsLoading) { LoadTaskData data = new LoadTaskData(); data.startFunc = startFunc; data.callBack = callBack; data.pararm = pararm; m_listLoadData.Add(data); } else { m_coroutine = StartCoroutine(DoCoroutineTask(startFunc, callBack, pararm)); } }
static private void CheckAsyncLoad() { if (m_listLoadData.Count == 0) { return; } LoadTaskData data = m_listLoadData[0]; m_listLoadData.RemoveAt(0); if (data.bSprite) { m_coroutine = m_assetManager.StartCoroutine(GetAssetAsync <Sprite>(data.url, data.func)); } else { m_coroutine = m_assetManager.StartCoroutine(GetAssetAsync <UnityEngine.Object>(data.url, data.func)); } }
private void CheckAsyncLoad() { if (m_listLoadData.Count == 0) { return; } LoadTaskData data = m_listLoadData[0]; m_listLoadData.RemoveAt(0); if (string.IsNullOrEmpty(data.url)) { m_coroutine = StartCoroutine(DoCoroutineTask(data.startFunc, data.callBack, data.pararm)); //ExeCoroutineTask(data.startFunc, data.callBack, data.pararm); } else { m_coroutine = StartCoroutine(GetAssetAsync <UnityEngine.Object>(data.url, data.func)); //LoadResAsync(data.url, data.func); } }
static private void LoadResAsync(string url, Action <UnityEngine.Object> callBack, bool bSprite) { if (m_bIsLoading) { LoadTaskData data = new LoadTaskData(); data.url = url; data.func = callBack; data.bSprite = bSprite; m_listLoadData.Add(data); } else { if (bSprite) { m_coroutine = m_assetManager.StartCoroutine(GetAssetAsync <Sprite>(url, callBack)); } else { m_coroutine = m_assetManager.StartCoroutine(GetAssetAsync <UnityEngine.Object>(url, callBack)); } } }