| | |
| | | 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的名字 |
| | |
| | | { |
| | | return LoadSprite(directory, name) as T; |
| | | } |
| | | else if (typeof(T) == typeof(SkeletonDataAsset)) |
| | | { |
| | | //文件目录调整,name中包含了路径 |
| | | if (name.Contains("/")) |
| | | { |
| | | directory += name.Substring(0, name.LastIndexOf("/")); |
| | | name = name.Substring(name.LastIndexOf("/") + 1); |
| | | } |
| | | |
| | | return LoadAssetInternal<T>(directory, name); |
| | | directory = directory.Replace("\\", "/"); |
| | | } |
| | | |
| | | 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 (directory == "UI" || directory == "UIComp" || directory.StartsWith("Sprite") || directory == "Battle/Prefabs") |
| | | { |
| | | 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") |
| | | { |
| | | directory = "UI/Hero/SpineRes"; |
| | | } |
| | | |
| | | else if (directory.Contains("Texture")) |
| | | { |
| | | directory = "maps/" + name; |
| | | } |
| | | |
| | | |
| | | var assetInfo = new AssetInfo(directory.ToLower(), name.ToLower()); |
| | | asset = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(T)) as T; |
| | | } |
| | |
| | | |
| | | private Sprite LoadSprite(string atlasName, string spriteName) |
| | | { |
| | | #if !UNITY_EDITOR |
| | | SpriteAtlas atlas = LoadAsset<SpriteAtlas>("Sprite", atlasName.Replace("Sprite/", "")); |
| | | return atlas.GetSprite(spriteName); |
| | | #else |
| | | return ResManager.Instance.LoadAssetInternal<Sprite>(atlasName, spriteName); |
| | | #endif |
| | | if (!AssetSource.isUseAssetBundle) |
| | | { |
| | | SpriteAtlas atlas = LoadAsset<SpriteAtlas>("Sprite", atlasName.Replace("Sprite/", "")); |
| | | return atlas.GetSprite(spriteName); |
| | | } |
| | | else |
| | | 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) |
| | | { |