private void GetResAnsyc(string resName, ResListener listener) { if (!m_requests.ContainsKey(resName)) { m_requests.Add(resName, Resources.LoadAsync(resName)); } List <ResListener> list; this.m_listeners.TryGetValue(resName, out list); if (list == null) { list = new List <ResListener>(); m_listeners.Add(resName, list); } list.Add(listener); }
/// <summary> /// 异步获取资源 /// </summary> /// <param name="resName"></param> /// <param name="listener"></param> public void GetAssetFromResourceAsync(string resName, ResListener listener) { if (string.IsNullOrEmpty(resName)) { Logger.LogWarning("res name is null"); } else if (listener == null) { Logger.LogWarning("listener is null"); } else { UnityEngine.Object obj = TryGetResObject(resName); if (obj != null) { listener.callback(obj, listener.param); } else { GetResAnsyc(resName, listener); } } }