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
}
}