private static IAssetLoad CreateIAssetLoad(string assetName, System.Type loadType) { IAssetLoad assetLoad = null; #if UNITY_EDITOR if (assetName.StartsWith("resources://")) { assetLoad = ResourcesrLoad.GetLoad(assetName, loadType, RemoveSharedAssetLoad); } else if (AssetLoadManager.IsSimulationMode == false) { assetLoad = EditorLoad.GetEditorLoad(assetName, loadType, RemoveSharedAssetLoad); } else #endif { if (assetName.EndsWith(".ab")) { assetLoad = AssetBundleLoad.GetAssetBundleLoad(assetName, RemoveSharedAssetLoad); } else { assetLoad = AssetLoad.GetAssetLoad(assetName, loadType, RemoveSharedAssetLoad); } } sharedAssetLoadList.Add(assetLoad); return(assetLoad); }
public void LoadAssetBundleSync(string assetName, System.Action <Object> onLoaded) { IAssetLoad assetLoad = GetIAssetLoad(assetName); if (assetLoad == null) { assetLoad = CreateIAssetLoad(assetName, null); assetLoadList.Add(assetLoad); } assetLoad.Retain(); assetLoad.LoadAssetSync(onLoaded); }
public void LoadAssetBundle(string assetName) { IAssetLoad assetLoad = GetIAssetLoad(assetName); if (assetLoad == null) { assetLoad = CreateIAssetLoad(assetName, null); assetLoadList.Add(assetLoad); } assetLoad.Retain(); assetLoad.LoadAsset(); }
public T LoadAsset <T>(string assetName) where T : UnityEngine.Object { IAssetLoad assetLoad = GetIAssetLoad(assetName); if (assetLoad == null) { assetLoad = CreateIAssetLoad(assetName, typeof(T)); assetLoadList.Add(assetLoad); } assetLoad.Retain(); assetLoad.LoadAsset(); return(assetLoad.Asset as T); }
public void LoadAssetSync <T>(string assetName, System.Action <T> onLoaded) where T : UnityEngine.Object { IAssetLoad assetLoad = GetIAssetLoad(assetName); if (assetLoad == null) { assetLoad = CreateIAssetLoad(assetName, typeof(T)); assetLoadList.Add(assetLoad); } assetLoad.Retain(); assetLoad.LoadAssetSync((asset) => { onLoaded?.Invoke(asset as T); }); }
public void Load(string path, Action <UnityEngine.Object> completed) { if (string.IsNullOrEmpty(path)) { return; } assetLoad = GetAssetLoad(assetLoadType); if (assetLoad == null) { return; } StartCoroutine(assetLoad.Load(path, completed)); }
private IAssetLoad GetIAssetLoad(string assetName) { IAssetLoad assetLoad = GetIAssetLoad(assetLoadList, assetName); if (assetLoad != null) { return(assetLoad); } assetLoad = GetIAssetLoad(sharedAssetLoadList, assetName); if (assetLoad != null) { assetLoadList.Add(assetLoad); return(assetLoad); } return(null); }