using System.IO; using UnityEngine; namespace YooAsset { internal static class YooAssetSettingsData { private static YooAssetSettings _setting = null; public static YooAssetSettings Setting { get { if (_setting == null) LoadSettingData(); return _setting; } } /// /// 加载配置文件 /// private static void LoadSettingData() { _setting = Resources.Load("YooAssetSettings"); if (_setting == null) { YooLogger.Log("YooAsset use default settings."); _setting = ScriptableObject.CreateInstance(); } else { YooLogger.Log("YooAsset use user settings."); } } /// /// 获取构建报告文件名 /// public static string GetBuildReportFileName(string packageName, string packageVersion) { if (string.IsNullOrEmpty(Setting.PackageManifestPrefix)) return $"{packageName}_{packageVersion}.report"; else return $"{Setting.PackageManifestPrefix}_{packageName}_{packageVersion}.report"; } /// /// 获取清单文件完整名称 /// public static string GetManifestBinaryFileName(string packageName, string packageVersion) { if (string.IsNullOrEmpty(Setting.PackageManifestPrefix)) return $"{packageName}_{packageVersion}.bytes"; else return $"{Setting.PackageManifestPrefix}_{packageName}_{packageVersion}.bytes"; } /// /// 获取清单文件完整名称 /// public static string GetManifestJsonFileName(string packageName, string packageVersion) { if (string.IsNullOrEmpty(Setting.PackageManifestPrefix)) return $"{packageName}_{packageVersion}.json"; else return $"{Setting.PackageManifestPrefix}_{packageName}_{packageVersion}.json"; } /// /// 获取包裹的哈希文件完整名称 /// public static string GetPackageHashFileName(string packageName, string packageVersion) { if (string.IsNullOrEmpty(Setting.PackageManifestPrefix)) return $"{packageName}_{packageVersion}.hash"; else return $"{Setting.PackageManifestPrefix}_{packageName}_{packageVersion}.hash"; } /// /// 获取包裹的版本文件完整名称 /// public static string GetPackageVersionFileName(string packageName) { if (string.IsNullOrEmpty(Setting.PackageManifestPrefix)) return $"{packageName}.version"; else return $"{Setting.PackageManifestPrefix}_{packageName}.version"; } #region 路径相关 /// /// 获取YOO的Resources目录的加载路径 /// public static string GetYooResourcesLoadPath(string packageName, string fileName) { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return PathUtility.Combine(packageName, fileName); else return PathUtility.Combine(Setting.DefaultYooFolderName, packageName, fileName); } /// /// 获取YOO的Resources目录的全路径 /// public static string GetYooResourcesFullPath() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return $"Assets/Resources"; else return $"Assets/Resources/{Setting.DefaultYooFolderName}"; } /// /// 获取YOO的编辑器下内置文件根目录 /// public static string GetYooEditorBuildinRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return PathUtility.Combine(Application.dataPath, "StreamingAssets"); else return PathUtility.Combine(Application.dataPath, "StreamingAssets", Setting.DefaultYooFolderName); } /// /// 获取YOO的PC端内置文件根目录 /// public static string GetYooStandaloneBuildinRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return Application.streamingAssetsPath; else return PathUtility.Combine(Application.streamingAssetsPath, Setting.DefaultYooFolderName); } /// /// 获取YOO的移动端内置文件根目录 /// public static string GetYooMobileBuildinRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return Application.streamingAssetsPath; else return PathUtility.Combine(Application.streamingAssetsPath, Setting.DefaultYooFolderName); } /// /// 获取YOO的Web端内置文件根目录 /// public static string GetYooWebBuildinRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return Application.streamingAssetsPath; else return PathUtility.Combine(Application.streamingAssetsPath, Setting.DefaultYooFolderName); } /// /// 获取YOO的编辑器下缓存文件根目录 /// public static string GetYooEditorCacheRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) { string projectPath = Path.GetDirectoryName(Application.dataPath); projectPath = PathUtility.RegularPath(projectPath); return projectPath; } else { // 注意:为了方便调试查看,编辑器下把存储目录放到项目根目录下。 string projectPath = Path.GetDirectoryName(Application.dataPath); projectPath = PathUtility.RegularPath(projectPath); return PathUtility.Combine(projectPath, Setting.DefaultYooFolderName); } } /// /// 获取YOO的PC端缓存文件根目录 /// public static string GetYooStandaloneCacheRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return Application.dataPath; else return PathUtility.Combine(Application.dataPath, Setting.DefaultYooFolderName); } /// /// 获取YOO的移动端缓存文件根目录 /// public static string GetYooMobileCacheRoot() { if (string.IsNullOrEmpty(Setting.DefaultYooFolderName)) return Application.persistentDataPath; else return PathUtility.Combine(Application.persistentDataPath, Setting.DefaultYooFolderName); } #endregion } }