/// <summary> /// Loads the asset. /// </summary> /// <param name="data">Data.</param> /// <param name="finished">Finished.</param> protected void LoadAsset(AssetBundleData data, AssetBundleClient.FinishedDelegate finished) { object obj = data.assetBundle.LoadAsset(data.objName, data.type) as object; if (data.type == typeof(Sprite)) { obj = Util.TextureConvertSprite(obj); } LogLoadAsset(data, obj); finished(obj); }
/// <summary> /// Loads the asset async. /// </summary> /// <returns>The asset async.</returns> /// <param name="data">Data.</param> /// <param name="finished">Finished.</param> protected IEnumerator LoadAssetAsync(AssetBundleData data, AssetBundleClient.FinishedDelegate finished) { AssetBundleRequest request = data.assetBundle.LoadAssetAsync(data.objName, data.type); yield return(request); object obj = request.asset as object; if (data.type == typeof(Sprite)) { obj = Util.TextureConvertSprite(obj); } LogLoadAsset(data, obj); finished(obj); }
/// <summary> /// Downloads the asset bundle. /// </summary> /// <param name="data">Data.</param> /// <param name="finished">Finished.</param> public void DownloadAssetBundle(AssetBundleData data, AssetBundleClient.FinishedDelegate finished = null) { time = Time.time; if (finished == null) { finished = data.finishedDelegate; } StartCoroutine(assetBundleClient.DownloadAssetBundle(data.url, data.version, delegate(object obj) { LogDownload(data, obj); if (finished != null) { finished(obj); } })); }
/// <summary> /// Loads the asset bundle. /// </summary> /// <param name="list">List.</param> /// <param name="finished">Finished.</param> public void LoadAssetBundle(List <AssetBundleData> list, AssetBundleClient.FinishedDelegate finished) { if (assetBundleData == null) { assetBundleData = new Dictionary <string, object> (); } System.Action innerAssetBundle = () => { list.RemoveAt(0); if (list.Count <= 0) { finished(new List <object> (assetBundleData.Values)); assetBundleData = null; } else { LoadAssetBundle(list, finished); } }; string key = list [0].url + list [0].objName + list [0].type.ToString(); if (assetBundleData.ContainsKey(key)) { innerAssetBundle(); return; } LoadAssetBundle(list [0], delegate(object obj) { if (assetBundleData == null) { assetBundleData = new Dictionary <string, object> (); } assetBundleData.Add(key, obj); innerAssetBundle(); }); }
/// <summary> /// Loads the asset bundle. /// </summary> /// <param name="list">List.</param> /// <param name="finished">Finished.</param> public void LoadAssetBundle(AssetBundleData[] list, AssetBundleClient.FinishedDelegate finished) { LoadAssetBundle(new List <AssetBundleData> (list), finished); }
/// <summary> /// Loads the asset bundle. /// </summary> /// <param name="data">Data.</param> /// <param name="finished">Finished.</param> public void LoadAssetBundle(AssetBundleData data, AssetBundleClient.FinishedDelegate finished) { System.Action InnerLoadAssetBundle = () => { System.Action InnerLoadAsset = () => { if (data.objName == string.Empty) { HDebug.LogWarning("Set the object name in the assetbundle."); finished(null); return; } if (data.async) { StartCoroutine(LoadAssetAsync(data, finished)); } else { LoadAsset(data, finished); } }; DownloadAssetBundle(data, delegate(object obj) { data.assetBundle = assetBundleClient.GetAssetBundle(data.url, data.version); if (data.assetBundle != null) { InnerLoadAsset(); } }); }; // HDebug.Log (data.assetBundleName + " / " + data.objName); #if UNITY_EDITOR if (SceneManager.Instance.EditorLocalLoadAssetBundle) { string[] paths = AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(data.assetBundleName, data.objName); string path = ""; if (paths.Length <= 0) { paths = AssetDatabase.GetAssetPathsFromAssetBundle(data.assetBundleName); if (paths.Length <= 0) { InnerLoadAssetBundle(); return; } string[] files = Directory.GetFiles(paths [0], data.objName + ".*"); if (files.Length <= 0) { InnerLoadAssetBundle(); return; } path = files [0]; } else { path = paths [0]; } object temp = AssetDatabase.LoadMainAssetAtPath(path); if (data.type == typeof(Sprite)) { temp = Util.TextureConvertSprite(temp); } if (Path.GetFileNameWithoutExtension(path) != data.objName) { temp = null; } LogLoadAsset(data, temp); finished(temp); } else { InnerLoadAssetBundle(); } #else InnerLoadAssetBundle(); #endif }