using System.Text; using BingoBrain.Core; using UnityEngine; using UnityEditor; using UnityEngine.Events; using Object = UnityEngine.Object; namespace BingoBrain.Asset.Editor { public class BingoseKit : Singleton, IBigose { private string assetRootPath = "AssetHotFix/"; public T GetAsset(string assetUrl, string assetName) where T : Object { var assetPath = new StringBuilder(AssetPathFormat(assetUrl)); // var assetFullPath = ""; // if (assetName.EndsWith("!a.png")) // { // //assetFullPath = AssetPathFormat(assetUrl, assetName); // } // else // { assetName = assetName.Split(".")[0]; //} // if (assetFullPath.IsNullOrWhiteSpace()) // { // // Debug.LogError($"[ Jarvis ] [ AssetDataBaseKit ] 未找到该资源,请确认路径是否正确 [ {assetPath}/{assetName} ] "); // } var asset = Resources.Load(assetPath.ToString() + "/" + assetName); return asset; } public static T GetAssetstatic(string assetUrl, string assetName) where T : Object { var assetPath = $"{"AssetHotFix/"}{assetUrl.Replace(".", "/")}"; assetName = assetName.Split(".")[0]; var asset = Resources.Load(assetPath.ToString() + "/" + assetName); return asset; } public void GetAsset(string assetUrl, string assetName, UnityAction onCompleted) where T : Object { var asset = GetAsset(assetUrl, assetName); onCompleted?.Invoke(asset); } public void RecycleAsset(string assetUrl, UnityAction onCompleted) { onCompleted?.Invoke(); } private string AssetPathFormat(string assetUrl, string assetName) { var replace = assetUrl.Replace(".", "/"); var sb = new StringBuilder(replace); var folderPath = sb + "/"; var assetPath = $"{assetRootPath}{folderPath}{assetName}"; return assetPath; } private string AssetPathFormat(string assetUrl) { var assetPath = $"{assetRootPath}{assetUrl.Replace(".", "/")}"; return assetPath; } } }