Esempio n. 1
0
 public override T LoadAsset <T>(string assetName)
 {
     if (IsReady)
     {
         if (LoadedAssetMap.ContainsKey(assetName))
         {
             return(LoadedAssetMap[assetName] as T);
         }
         if (AssetsPath == null)
         {
             return(null);
         }
         var assetPaths = AssetDatabase.GetAssetPathsFromAssetBundleAndAssetName(AssetBundleName, assetName);
         if (assetPaths.Length == 1)
         {
             T asset = AssetDatabase.LoadAssetAtPath <T>(assetPaths[0]);
             if (asset != null)
             {
                 LoadedAssetMap.Add(assetName, asset);
                 return(asset);
             }
             return(null);
         }
         if (assetPaths.Length > 1)
         {
             UnityEngine.Debug.LogError(string.Format("AssetBundle: {0} 存在同名Asset: {1}资源", AssetBundleName,
                                                      assetName));
             return(null);
         }
         return(null);
     }
     return(null);
 }
Esempio n. 2
0
 public override void Reset()
 {
     AssetBundleName = String.Empty;
     LastUsedTime    = 0.0f;
     IsReady         = false;
     ReferenceCount  = 0;
     ReferenceList.Clear();
     LoadedAssetMap.Clear();
     AssetsPath = null;
 }
 public override void Reset()
 {
     Bundle          = null;
     AssetBundleName = String.Empty;
     LastUsedTime    = 0.0f;
     IsReady         = false;
     DepAssetBundleInfos.Clear();
     ReferenceCount = 0;
     ReferenceList.Clear();
     LoadedAssetMap.Clear();
     OnBundleUnloadAction = null;
 }
 public override void LoadAllAsset <T>()
 {
     if (IsReady)
     {
         var allassets = Bundle.LoadAllAssets <T>();
         foreach (var asset in allassets)
         {
             var assetName = asset.name;
             if (!LoadedAssetMap.ContainsKey(assetName))
             {
                 LoadedAssetMap.Add(assetName, asset);
             }
         }
     }
 }
Esempio n. 5
0
 public void UnloadResource()
 {
     foreach (KeyValuePair <string, Object> loadAsset in LoadedAssetMap)
     {
         var asset = loadAsset.Value;
         if (asset is GameObject || asset is Component)
         {
         }
         else
         {
             Resources.UnloadAsset(asset);
         }
     }
     LoadedAssetMap.Clear();
     IsReady = false;
 }
 public override T LoadAsset <T>(string assetName)
 {
     if (IsReady)
     {
         if (LoadedAssetMap.ContainsKey(assetName))
         {
             return(LoadedAssetMap[assetName] as T);
         }
         if (Bundle == null)
         {
             return(null);
         }
         var asset = Bundle.LoadAsset <T>(assetName);
         if (asset != null)
         {
             LoadedAssetMap.Add(assetName, asset);
             return(asset);
         }
     }
     return(null);
 }
Esempio n. 7
0
 public override void LoadAllAsset <T>()
 {
     if (IsReady)
     {
         if (AssetsPath != null && AssetsPath.Length > 0)
         {
             foreach (string path in AssetsPath)
             {
                 var allAssets = AssetDatabase.LoadAllAssetsAtPath(path);
                 foreach (var asset in allAssets)
                 {
                     if (asset.GetType() == typeof(T))
                     {
                         var assetName = asset.name;
                         if (!LoadedAssetMap.ContainsKey(assetName))
                         {
                             LoadedAssetMap.Add(assetName, asset);
                         }
                     }
                 }
             }
         }
     }
 }