public GameObject Generate() { string assetName = string.Format("{0}", AssetBundleAssetRecord.GetAssetName(path)); UnityEngine.Object obj = m_instance.loadedAssetBundles[assetBundleName].GetRes(assetName); if (obj != null) { GameObject go = GameObject.Instantiate(obj) as GameObject; AssetBundleUser.GetInstance().SetBundle(assetBundleName, go); return(go); } return(null); }
public Object LoadAsset(string path) { Object obj = null; path = string.Format(basePath, path.Replace("\\", "/")); string assetBundleName = AssetBundleAssetRecord.GetAssetBundleName(path); if (!string.IsNullOrEmpty(assetBundleName)) { string assetName = string.Format("{0}", AssetBundleAssetRecord.GetAssetName(path)); ABsManager.Load(assetBundleName); obj = ABsManager.Instance.loadedAssetBundles[assetBundleName].GetRes(assetName); } return(obj); }
public IEnumerator LoadAssetAsync(string path, System.Action <Object> callback) { path = string.Format(basePath, path.Replace("\\", "/")); string assetBundleName = AssetBundleAssetRecord.GetAssetBundleName(path); ObjectRequest or = FindObjectRequest(path); if (or == null) { or = new ObjectRequest(path, callback); ors.Add(or); yield return(ABsManager.LoadAsync(assetBundleName)); string assetName = string.Format("{0}", AssetBundleAssetRecord.GetAssetName(path)); //yield return ABsManager.Find(assetBundleName).LoadFromMemeroyAsync(); Object obj = ABsManager.Find(assetBundleName).GetRes(assetName); if (or == null) { Debug.LogError("or is removed"); } ; if (or.callbacks != null) { Debug.Log("or callback count = " + or.callbacks.Count + " " + or.path); foreach (var k in or.callbacks) { k(obj); } or.callbacks.Clear(); } ors.Remove(or); } else { or.callbacks.Add(callback); } //if (callback != null) callback(obj); }