|  |  | 
 |  |  | using System.IO; | 
 |  |  | using UnityEngine.Video; | 
 |  |  | using Spine.Unity; | 
 |  |  | using UnityEngine.UI; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |     } | 
 |  |  | #endif | 
 |  |  |  | 
 |  |  |     public T LoadAsset<T> (string directory, string name) where T : UnityEngine.Object | 
 |  |  |     public T LoadAsset<T> (string directory, string name, bool needExt = true) where T : UnityEngine.Object | 
 |  |  |     { | 
 |  |  |         T asset = null; | 
 |  |  |         //  特殊处理 因为有一层图集的关系 directory要传入的应该是atlas的名字 | 
 |  |  | 
 |  |  |             directory = directory.Replace("\\", "/"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return LoadAssetInternal<T>(directory, name); | 
 |  |  |         return LoadAssetInternal<T>(directory, name, needExt); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private T LoadAssetInternal<T>(string directory, string name) where T : UnityEngine.Object | 
 |  |  |     private T LoadAssetInternal<T>(string directory, string name, bool needExt = true) where T : UnityEngine.Object | 
 |  |  |     { | 
 |  |  |         T asset = null; | 
 |  |  |         var path = ($"Assets/ResourcesOut/{directory}/{name}" + (needExt ? GetExtension(typeof(T)) : "")).Replace("//", "/").Trim().Replace("\\", "/"); | 
 |  |  |  | 
 |  |  |         var path = ($"Assets/ResourcesOut/{directory}/{name}" + GetExtension(typeof(T))).Replace("//", "/").Trim().Replace("\\", "/"); | 
 |  |  |         if (!AssetSource.isUseAssetBundle) | 
 |  |  |         { | 
 |  |  | #if UNITY_EDITOR | 
 |  |  | 
 |  |  |         } | 
 |  |  |         else | 
 |  |  |         { | 
 |  |  |             if (!needExt) | 
 |  |  |             { | 
 |  |  |                 //外部用到的自己加后缀,内部统一去除后缀名 | 
 |  |  |                 name = name.Substring(0, name.LastIndexOf(".")); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (directory == "UI" || directory == "UIComp" || directory.StartsWith("Sprite") | 
 |  |  |             || directory == "Battle/Prefabs" || directory == "Materials") | 
 |  |  |             {  | 
 |  |  |             { | 
 |  |  |                 directory = "UI/" + directory; | 
 |  |  |             } | 
 |  |  |             else if (name == "Hero_001") | 
 |  |  | 
 |  |  |  | 
 |  |  |             else if (directory.Contains("Texture")) | 
 |  |  |             { | 
 |  |  |                 directory = "maps/"+name; | 
 |  |  |                 directory = "maps/" + name; | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             var assetInfo = new AssetInfo(directory.ToLower(), name.ToLower()); | 
 |  |  |             asset = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(T)) as T; | 
 |  |  | 
 |  |  |             return LoadAssetInternal<Sprite>(atlasName, spriteName); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void LoadAssetAsync<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object | 
 |  |  |     public void LoadAssetAsync<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack, bool needExt = true) where T : UnityEngine.Object | 
 |  |  |     { | 
 |  |  |         //  特殊处理 因为有一层图集的关系 directory要传入的应该是atlas的名字 | 
 |  |  |         if (typeof(T) == typeof(Sprite)) | 
 |  |  | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         LoadAssetAsyncInternal<T>(directory, name, callBack); | 
 |  |  |         LoadAssetAsyncInternal<T>(directory, name, callBack, needExt); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void LoadSpriteAsync<T>(string atlasName, string spriteName, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object | 
 |  |  | 
 |  |  | #endif | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void LoadAssetAsyncInternal<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object | 
 |  |  |     private void LoadAssetAsyncInternal<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack, bool needExt = true) where T : UnityEngine.Object | 
 |  |  |     { | 
 |  |  |         var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", GetExtension(typeof(T))).Replace("//", "/"); | 
 |  |  |         var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", (needExt ? GetExtension(typeof(T)) : "")).Replace("//", "/"); | 
 |  |  |  | 
 |  |  |         if (!AssetSource.isUseAssetBundle) | 
 |  |  |         { |