public static BaseLoaderElement CreateLoader(EnumResouceType type, string path) { BaseLoaderElement loader; switch (type) { case EnumResouceType.CACHE_BINARY: loader = new CacheBinaryLoader(path); break; case EnumResouceType.BINARY: loader = new BinaryLoader(path); break; case EnumResouceType.REMOTE_BINARY: loader = new RemoteBinaryLoader(path); break; case EnumResouceType.ASSETBUNDLE: loader = new ABLoader(path); break; default: loader = new BinaryLoader(path); break; } return(loader); }
public static void Load(string path, EnumResouceType type, System.Action <object> completeCallback, System.Action <string> errorCallback = null) { BaseLoaderElement loader; if (_loadingDic.ContainsKey(path)) { loader = _loadingDic[path]; loader.completeCallback += completeCallback; if (errorCallback != null) { loader.errorCallback += errorCallback; } } else { loader = CreateLoader(type, path); loader.onLoadComplete = OnLoadComplete; loader.onLoadError = OnLoadError; loader.completeCallback += completeCallback; loader.errorCallback += errorCallback; _loadingDic.Add(path, loader); Initiator.instance.StartCoroutine(loader.Load()); } }