public static CAudioLoader Load(string url, System.Action <bool, AudioClip> callback = null) { CLoaderDelgate newCallback = null; if (callback != null) { newCallback = (isOk, obj) => callback(isOk, obj as AudioClip); } return(AutoNew <CAudioLoader>(url, newCallback)); }
public static CSpriteLoader Load(string path, CSpriteLoaderDelegate callback = null) { CLoaderDelgate newCallback = null; if (callback != null) { newCallback = (isOk, obj) => callback(isOk, obj as Sprite); } return(AutoNew <CSpriteLoader>(path, newCallback)); }
public static CAssetFileLoader Load(string path, CAssetFileBridgeDelegate assetFileLoadedCallback = null) { CLoaderDelgate realcallback = null; if (assetFileLoadedCallback != null) { realcallback = (isOk, obj) => assetFileLoadedCallback(isOk, obj as UnityEngine.Object); } return(AutoNew <CAssetFileLoader>(path, realcallback)); }
public static KFontLoader Load(string path, Action <bool, Font> callback = null) { CLoaderDelgate realcallback = null; if (callback != null) { realcallback = (isOk, obj) => callback(isOk, obj as Font); } return(AutoNew <KFontLoader>(path, realcallback)); }
public static CStaticAssetLoader Load(string url, CAssetFileLoader.CAssetFileBridgeDelegate callback = null) { CLoaderDelgate newCallback = null; if (callback != null) { newCallback = (isOk, obj) => callback(isOk, obj as UnityEngine.Object); } return(AutoNew <CStaticAssetLoader>(url, newCallback)); }
public static KStaticAssetLoader Load(string url, KAssetFileLoader.CAssetFileBridgeDelegate callback = null, KAssetBundleLoaderMode loaderMode = KAssetBundleLoaderMode.Default) { CLoaderDelgate newCallback = null; if (callback != null) { newCallback = (isOk, obj) => callback(isOk, obj as UnityEngine.Object); } return(AutoNew <KStaticAssetLoader>(url, newCallback, false, loaderMode)); }
public static KAssetFileLoader Load(string path, CAssetFileBridgeDelegate assetFileLoadedCallback = null, KAssetBundleLoaderMode loaderMode = KAssetBundleLoaderMode.Default) { CLoaderDelgate realcallback = null; if (assetFileLoadedCallback != null) { realcallback = (isOk, obj) => assetFileLoadedCallback(isOk, obj as UnityEngine.Object); } return(AutoNew <KAssetFileLoader>(path, realcallback, false, loaderMode)); }
public static CAssetBundleLoader Load(string url, CAssetBundleLoaderDelegate callback = null) { CLoaderDelgate newCallback = null; if (callback != null) { newCallback = (isOk, obj) => callback(isOk, obj as AssetBundle); } var newLoader = AutoNew <CAssetBundleLoader>(url, newCallback); return(newLoader); }
public static KAssetBundleLoader Load(string url, CAssetBundleLoaderDelegate callback = null, KAssetBundleLoaderMode loaderMode = KAssetBundleLoaderMode.Default) { CLoaderDelgate newCallback = null; if (callback != null) { newCallback = (isOk, obj) => callback(isOk, obj as AssetBundle); } var newLoader = AutoNew <KAssetBundleLoader>(url, newCallback, false, loaderMode); return(newLoader); }
/// <summary> /// 统一的对象工厂 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="url"></param> /// <param name="callback"></param> /// <param name="forceCreateNew"></param> /// <returns></returns> protected static T AutoNew <T>(string url, CLoaderDelgate callback = null, bool forceCreateNew = false, params object[] initArgs) where T : KAbstractResourceLoader, new() { Dictionary <string, KAbstractResourceLoader> typesDict = GetTypeDict(typeof(T)); KAbstractResourceLoader loader; if (string.IsNullOrEmpty(url)) { Logger.LogError("[{0}:AutoNew]url为空", typeof(T)); } if (forceCreateNew || !typesDict.TryGetValue(url, out loader)) { loader = new T(); if (!forceCreateNew) { typesDict[url] = loader; } loader.IsForceNew = forceCreateNew; loader.Init(url, initArgs); if (Application.isEditor) { KResourceLoaderDebugger.Create(typeof(T).Name, url, loader); } } else { if (loader.RefCount < 0) { //loader.IsDisposed = false; // 转死回生的可能 Logger.LogError("Error RefCount!"); } } loader.RefCount++; // RefCount++了,重新激活,在队列中准备清理的Loader if (UnUsesLoaders.ContainsKey(loader)) { UnUsesLoaders.Remove(loader); loader.Revive(); } loader.AddCallback(callback); return(loader as T); }
/// <summary> /// 在IsFinisehd后悔执行的回调 /// </summary> /// <param name="callback"></param> protected void AddCallback(CLoaderDelgate callback) { if (callback != null) { if (IsCompleted) { if (ResultObject == null) { Logger.LogWarning("Null ResultAsset {0}", Url); } callback(ResultObject != null, ResultObject); } else { _afterFinishedCallbacks.Add(callback); } } }
protected static T AutoNew <T>(string url, CLoaderDelgate callback = null) where T : CBaseResourceLoader, new() { //CheckGcCollect(); Dictionary <string, CBaseResourceLoader> typesDict = GetTypeDict(typeof(T)); CBaseResourceLoader loader; if (string.IsNullOrEmpty(url)) { CDebug.LogError("[{0}:AutoNew]url为空", typeof(T)); } if (!typesDict.TryGetValue(url, out loader)) { loader = typesDict[url] = new T(); loader.Init(url); if (Application.isEditor) { CResourceLoaderDebugger.Create(typeof(T).Name, url, loader); } } else { if (loader.RefCount < 0) { //loader.IsDisposed = false; // 转死回生的可能 CDebug.LogError("Error RefCount!"); } } loader.RefCount++; loader.AddCallback(callback); // RefCount++了,重新激活,在队列中准备清理的Loader if (UnUsesLoaders.ContainsKey(loader)) { UnUsesLoaders.Remove(loader); loader.IsReadyDisposed = false; } return(loader as T); }
//public int DownloadedSize { get { return Www != null ? Www.bytesDownloaded : 0; } } /// <summary> /// Use this to directly load WWW by Callback or Coroutine, pass a full URL. /// A wrapper of Unity's WWW class. /// </summary> public static CWWWLoader Load(string url, CLoaderDelgate callback = null) { var wwwLoader = AutoNew<CWWWLoader>(url, callback); return wwwLoader; }
/// <summary> /// Use this to directly load WWW by Callback or Coroutine, pass a full URL. /// A wrapper of Unity's WWW class. /// </summary> public static CWWWLoader Load(string url, CLoaderDelgate callback = null) { var wwwLoader = AutoNew <CWWWLoader>(url, callback); return(wwwLoader); }