public BaseAssetAsyncLoader LoadAssetAsync(string assetPath, System.Type assetType) { #if UNITY_EDITOR if (AssetBundleConfig.IsEditorMode) { string path = AssetBundleUtility.PackagePathToAssetsPath(assetPath); UnityEngine.Object target = AssetDatabase.LoadAssetAtPath(path, assetType); return new EditorAssetAsyncLoader(target); } #endif string assetbundleName = null; string assetName = null; bool status = MapAssetPath(assetPath, out assetbundleName, out assetName); if (!status) { Logger.LogError("No assetbundle at asset path :" + assetPath); return null; } var loader = AssetAsyncLoader.Get(); prosessingAssetAsyncLoader.Add(loader); if (IsAssetLoaded(assetName)) { Logger.LogError(">>>> IsAssetLoaded {0}", assetName); loader.Init(assetName, GetAssetCache(assetName)); return loader; } var assetbundleLoader = LoadAssetBundleAsync(assetbundleName); loader.Init(assetName, assetbundleLoader); return loader; }
public BaseAssetAsyncLoader LoadAssetAsync(string assetPath, System.Type assetType) { #if UNITY_EDITOR if (AssetBundleConfig.IsEditorMode) { string path = string.Format("Assets/{0}/{1}", AssetBundleConfig.AssetsFolderName, assetPath); UnityEngine.Object target = AssetDatabase.LoadAssetAtPath(path, assetType); return(new EditorAssetAsyncLoader(target)); } #endif string assetbundleName = null; string assetName = null; bool status = MapAssetPath(assetPath, out assetbundleName, out assetName); if (!status) { Logger.LogError("No assetbundle at asset path :" + assetPath); return(null); } var loader = AssetAsyncLoader.Get(); prosessingAssetAsyncLoader.Add(loader); if (IsAssetLoaded(assetName)) { loader.Init(assetName, GetAssetCache(assetName)); return(loader); } else { var assetbundleLoader = LoadAssetBundleAsync(assetbundleName); loader.Init(assetName, assetbundleLoader); return(loader); } }
public static AssetAsyncLoader Get(bool isatlas, Type type) { AssetAsyncLoader loader = null; if (pool.Count > 0) { loader = pool.Dequeue(); } else { loader = new AssetAsyncLoader(++sequence); } loader.isAtlas = isatlas; loader.assetType = type; return(loader); }
public BaseAssetAsyncLoader LoadAssetAsync(string assetPath, System.Type assetType) { #if UNITY_EDITOR if (AssetBundleConfig.IsEditorMode) { string path = AssetBundleUtility.PackagePathToAssetsPath(assetPath); KVDebugHelper.Instance.AddAssetInfo(assetPath, path); if (File.Exists(path)) { UnityEngine.Object target = AssetDatabase.LoadAssetAtPath(path, assetType); return(new EditorAssetAsyncLoader(target)); } } #endif string assetbundleName = null; string assetName = null; MapAssetPath(assetPath, out assetbundleName, out assetName); KVDebugHelper.Instance.AddAssetInfo(assetPath, assetbundleName); if (assetPath.IndexOf("spine") >= 0) { Debug.LogError($"不应该加载这个资源 assetPath:{assetPath}"); } if (assetName == null) { Debug.LogError($"没有这个资源 assetPath:{assetPath}"); return(null); } var loader = AssetAsyncLoader.Get(); prosessingAssetAsyncLoader.Add(loader); if (IsAssetLoaded(assetName)) { //Logger.LogError(">>>> IsAssetLoaded {0}", assetName); loader.Init(assetName, GetAssetCache(assetName)); return(loader); } var assetbundleLoader = LoadAssetBundleAsync(assetbundleName, assetPath); loader.Init(assetName, assetbundleLoader); return(loader); }
public static void Recycle(AssetAsyncLoader creater) { pool.Enqueue(creater); }