Ejemplo n.º 1
0
 public AssetBundleLoader(string bundleName)
 {
     status          = eLoadStatus.idle;
     this.bundleName = bundleName;
     path            = ResourceSetting.GetBundlePathByBundleName(bundleName);
     resourceModule  = Mango.GetModule <ResourceModule>();
     taskModule      = Mango.GetModule <TaskModule>();
 }
Ejemplo n.º 2
0
 private void LoadedCallback(Action <AssetBundle> onCacheFinished)
 {
     status = eLoadStatus.Loaded;
     if (onCacheFinished != null)
     {
         onCacheFinished(bundle);
     }
 }
Ejemplo n.º 3
0
 private bool CheckLoadStatus()
 {
     if (status == eLoadStatus.Loading)
     {
         return(false);
     }
     status = eLoadStatus.Loading;
     return(true);
 }
Ejemplo n.º 4
0
        public void UnLoad()
        {
            if (status != eLoadStatus.Loaded)
            {
                Debug.LogError("asset尚未完成加载!");
                return;
            }

            bundleLoader.UnLoad();
            status = eLoadStatus.Release;
            asset  = null;
        }
Ejemplo n.º 5
0
        private IEnumerator LoadAsset(Action <UnityEngine.Object> onCacheFinished)
        {
            AssetBundle        bundle  = bundleLoader.Load();
            AssetBundleRequest request = bundle.LoadAssetAsync(resID.assetName);

            //TODO 加载相应的资源
            yield return(request);

            asset  = request.asset;
            status = eLoadStatus.Loaded;
            if (onCacheFinished != null)
            {
                onCacheFinished(asset);
            }
        }
Ejemplo n.º 6
0
        public UnityEngine.Object Load()
        {
            if (!CheckLoadStatus())
            {
                return(null);
            }
            if (asset)
            {
                return(asset);
            }
            if (bundleLoader == null)
            {
                string bundleName = ResourceSetting.GetBundleName(resID);
                bundleLoader = resourceModule.GetBundleLoader(bundleName);
            }
            AssetBundle bundle = bundleLoader.Load();

            asset  = bundle.LoadAsset(resID.assetName);
            status = eLoadStatus.Loaded;
            return(asset);
        }
Ejemplo n.º 7
0
 public AssetLoader(int id)
 {
     status         = eLoadStatus.idle;
     resID          = ResID.New(id);
     resourceModule = Mango.GetModule <ResourceModule>();
 }