public void LoadResourceAsync <T>(string resName, OnResLoad <T> resLoader) where T : UnityEngine.Object { if (m_pathToResourceMap.ContainsKey(resName)) { m_resourceRefCout[resName] += 1; resLoader(resName, (T)m_pathToResourceMap[resName]); } else { StartCoroutine(DoLoadResourceAsync(resName, resLoader)); } }
private IEnumerator DoLoadResourceAsync <T>(string resName, OnResLoad <T> resLoader) where T : UnityEngine.Object { ResourceRequest req = Resources.LoadAsync(resName); yield return(req); if (!m_pathToResourceMap.ContainsKey(resName)) { m_pathToResourceMap.Add(resName, req.asset); m_resourceRefCout[resName] = 1; } else { m_resourceRefCout[resName] += 1; } resLoader(resName, (T)req.asset); }
public void GetResourceAsync <T>(string resName, OnResLoad <T> resLoader) where T : UnityEngine.Object { m_loader.LoadResourceAsync <T>(resName, resLoader); }