/// <summary> /// 预加载 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="resType"></param> /// <param name="assetPath"></param> /// <param name="count"></param> /// <param name="clear"></param> public void PreLoadObj <T>(ResFromType resType, string assetPath, int count = 1, bool clear = false) where T : Object { if (CheckNoCanLoad()) { AFLogger.e("此Loader已经被释放,请注意!"); return; } for (int i = 0; i < count; i++) { ObjLoadInfo objLoadInfo = ObjLoadInfo.Allocate(resType, assetPath, null, false); ResManager.Instance.PreLoadObj(objLoadInfo); objLoadInfo.Recycle2Cache(); } }
/// <summary> /// 同步加载Prefab,返回其实例化的GameObject /// </summary> /// <param name="resType"></param> /// <param name="assetPath"></param> /// <param name="parTrans"></param> /// <param name="bClear"></param> /// <returns></returns> public GameObject InstantiateObjectSync(ResFromType resType, string assetPath, Transform parTrans = null, bool bClear = true) { if (CheckNoCanLoad()) { AFLogger.e("此Loader已经被释放,请注意!"); return(null); } ObjLoadInfo objLoadInfo = ObjLoadInfo.Allocate(resType, assetPath, parTrans, bClear); GameObject objAsset = ResManager.Instance.InstantiateObjectSync(objLoadInfo); if (objAsset != null) { //加载完成后添加到加载资源列表中 mObjList.AddValue(objAsset.GetInstanceID()); } objLoadInfo.Recycle2Cache(); return(objAsset); }
/// <summary> /// 异步加载Prefab /// </summary> /// <param name="resType"></param> /// <param name="assetPath"></param> /// <param name="parTrans"></param> /// <param name="loadObjFinish"></param> /// <param name="loadResPriority"></param> /// <param name="bClear"></param> public void InstantiateObjectASync(ResFromType resType, string assetPath, System.Action <bool, ResObject> loadObjFinish, Transform parTrans = null, LoadResPriority loadResPriority = LoadResPriority.RES_NUM, bool bClear = true) { if (CheckNoCanLoad()) { AFLogger.e("此Loader已经被释放,请注意!"); return; } ObjLoadInfo objLoadInfo = ObjLoadInfo.Allocate(resType, assetPath, parTrans, bClear, loadResPriority, AsyncObjCallBack, loadObjFinish); if (mAsyncLoadingObjDic.ContainsKey(assetPath)) { mAsyncLoadingObjDic[assetPath].Add(objLoadInfo); } else { AsyncCount += 1; mAsyncLoadingObjDic.AddValue(assetPath, objLoadInfo); ResManager.Instance.InstantiateObjectASync(objLoadInfo); } }