78 lines
2.4 KiB
C#
78 lines
2.4 KiB
C#
|
|
namespace YooAsset.Editor
|
|
{
|
|
public struct PackRuleData
|
|
{
|
|
public string AssetPath;
|
|
public string CollectPath;
|
|
public string GroupName;
|
|
public string UserData;
|
|
|
|
public PackRuleData(string assetPath, string collectPath, string groupName, string userData)
|
|
{
|
|
AssetPath = assetPath;
|
|
CollectPath = collectPath;
|
|
GroupName = groupName;
|
|
UserData = userData;
|
|
}
|
|
}
|
|
|
|
public struct PackRuleResult
|
|
{
|
|
private readonly string _bundleName;
|
|
private readonly string _bundleExtension;
|
|
|
|
public PackRuleResult(string bundleName, string bundleExtension)
|
|
{
|
|
_bundleName = bundleName;
|
|
_bundleExtension = bundleExtension;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 结果是否有效
|
|
/// </summary>
|
|
public bool IsValid()
|
|
{
|
|
return string.IsNullOrEmpty(_bundleName) == false && string.IsNullOrEmpty(_bundleExtension) == false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取资源包全名称
|
|
/// </summary>
|
|
public string GetBundleName(string packageName, bool uniqueBundleName)
|
|
{
|
|
string fullName;
|
|
string bundleName = EditorTools.GetRegularPath(_bundleName).Replace('/', '_').Replace('.', '_').Replace(" ", "_").ToLower();
|
|
if (uniqueBundleName)
|
|
fullName = $"{packageName}_{bundleName}.{_bundleExtension}";
|
|
else
|
|
fullName = $"{bundleName}.{_bundleExtension}";
|
|
return fullName.ToLower();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取共享资源包全名称
|
|
/// </summary>
|
|
public string GetShareBundleName(string packageName, bool uniqueBundleName)
|
|
{
|
|
string fullName;
|
|
string bundleName = EditorTools.GetRegularPath(_bundleName).Replace('/', '_').Replace('.', '_').Replace(" ", "_").ToLower();
|
|
if (uniqueBundleName)
|
|
fullName = $"{packageName}_share_{bundleName}.{_bundleExtension}";
|
|
else
|
|
fullName = $"share_{bundleName}.{_bundleExtension}";
|
|
return fullName.ToLower();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 资源打包规则接口
|
|
/// </summary>
|
|
public interface IPackRule
|
|
{
|
|
/// <summary>
|
|
/// 获取打包规则结果
|
|
/// </summary>
|
|
PackRuleResult GetPackRuleResult(PackRuleData data);
|
|
}
|
|
} |