private ResLoader GetResLoader(ResName resName, bool allocate = true) { ResLoader loader; if (!mResLoaderDict.TryGetValue(resName.FullName, out loader)) { if (allocate) { loader = ResLoader.Allocate(); mResLoaderDict.Add(resName.FullName, loader); } } return(loader); }
/// <summary> /// release resource, also release all its dependencies /// </summary> /// <param name="name">res name with extension, e.g. "a.prefab"</param> /// <param name="abName">optional assetbundle name, in case of same naming.</param> public static void Release(string name, string abName = null) { ResName resName = ResDataMgr.Instance.GetResName(name, abName); ResLoader loader = Instance.GetResLoader(resName, false); if (loader != null) { loader.Recycle2Cache(); Instance.RemoveResLoader(resName); return; } Debug.LogFormat("<color=yellow> >>>[ResKit]- GlobalResLoader.Release: Can't find res {0} loaded.</color>", resName.FullName); }