Пример #1
0
            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);
            }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }