update runtime logic

pull/62/head^2
hevinci 2023-02-17 18:43:39 +08:00
parent c4875d4f80
commit 69c7a51215
4 changed files with 26 additions and 50 deletions

View File

@ -122,7 +122,7 @@ namespace YooAsset
} }
/// <summary> /// <summary>
/// 文件名称(远端文件名和内置文件名) /// 文件名称
/// </summary> /// </summary>
private string _fileName; private string _fileName;
public string FileName public string FileName
@ -135,6 +135,20 @@ namespace YooAsset
} }
} }
/// <summary>
/// 文件后缀名
/// </summary>
private string _fileExtension;
public string FileExtension
{
get
{
if (string.IsNullOrEmpty(_fileExtension))
throw new Exception("Should never get here !");
return _fileExtension;
}
}
public PatchBundle() public PatchBundle()
{ {
@ -146,7 +160,8 @@ namespace YooAsset
public void ParseBundle(string packageName, int nameStype) public void ParseBundle(string packageName, int nameStype)
{ {
PackageName = packageName; PackageName = packageName;
_fileName = PatchManifestTools.CreateBundleFileName(nameStype, BundleName, FileHash, IsRawFile); _fileExtension = PatchManifestTools.GetRemoteBundleFileExtension(BundleName);
_fileName = PatchManifestTools.GetRemoteBundleFileName(nameStype, BundleName, _fileExtension, FileHash);
} }
/// <summary> /// <summary>

View File

@ -155,21 +155,21 @@ namespace YooAsset
} }
#endif #endif
/// <summary> public static string GetRemoteBundleFileExtension(string bundleName)
/// 生成Bundle文件的正式名称 {
/// </summary> string fileExtension = Path.GetExtension(bundleName);
public static string CreateBundleFileName(int nameStyle, string bundleName, string fileHash, bool isRawFile) return fileExtension;
}
public static string GetRemoteBundleFileName(int nameStyle, string bundleName, string fileExtension, string fileHash)
{ {
if (nameStyle == 1) //HashName if (nameStyle == 1) //HashName
{ {
string fileExtension = isRawFile ? YooAssetSettingsData.Setting.RawBundleFileVariant : YooAssetSettingsData.Setting.AssetBundleFileVariant; return StringUtility.Format("{0}{1}", fileHash, fileExtension);
return StringUtility.Format("{0}.{1}", fileHash, fileExtension);
} }
else if (nameStyle == 4) //BundleName_HashName else if (nameStyle == 4) //BundleName_HashName
{ {
string fileName = bundleName.Remove(bundleName.LastIndexOf('.')); string fileName = bundleName.Remove(bundleName.LastIndexOf('.'));
string fileExtension = isRawFile ? YooAssetSettingsData.Setting.RawBundleFileVariant : YooAssetSettingsData.Setting.AssetBundleFileVariant; return StringUtility.Format("{0}_{1}{2}", fileName, fileHash, fileExtension);
return StringUtility.Format("{0}_{1}.{2}", fileName, fileHash, fileExtension);
} }
else else
{ {

View File

@ -5,26 +5,11 @@ namespace YooAsset
[CreateAssetMenu(fileName = "YooAssetSettings", menuName = "YooAsset/Create Settings")] [CreateAssetMenu(fileName = "YooAssetSettings", menuName = "YooAsset/Create Settings")]
internal class YooAssetSettings : ScriptableObject internal class YooAssetSettings : ScriptableObject
{ {
/// <summary>
/// AssetBundle文件的后缀名
/// </summary>
public string AssetBundleFileVariant = "bundle";
/// <summary>
/// 原生文件的后缀名
/// </summary>
public string RawBundleFileVariant = "rawfile";
/// <summary> /// <summary>
/// 清单文件名称 /// 清单文件名称
/// </summary> /// </summary>
public string PatchManifestFileName = "PatchManifest"; public string PatchManifestFileName = "PatchManifest";
/// <summary>
/// 资源包名正规化(移除路径分隔符)
/// </summary>
public bool RegularBundleName = true;
/// <summary> /// <summary>
/// 清单文件头标记 /// 清单文件头标记
@ -41,7 +26,7 @@ namespace YooAsset
/// </summary> /// </summary>
public const string PatchManifestFileVersion = "1.4.0"; public const string PatchManifestFileVersion = "1.4.0";
/// <summary> /// <summary>
/// 缓存的数据文件名称 /// 缓存的数据文件名称
/// </summary> /// </summary>
@ -63,20 +48,9 @@ namespace YooAsset
/// </summary> /// </summary>
public const string ReportFileName = "BuildReport"; public const string ReportFileName = "BuildReport";
/// <summary>
/// Unity着色器资源包名称
/// </summary>
public const string UnityShadersBundleName = "unityshaders";
/// <summary> /// <summary>
/// 内置资源目录名称 /// 内置资源目录名称
/// </summary> /// </summary>
public const string StreamingAssetsBuildinFolder = "BuildinFiles"; public const string StreamingAssetsBuildinFolder = "BuildinFiles";
/// <summary>
/// 忽略的文件类型
/// </summary>
public static readonly string[] IgnoreFileExtensions = { "", ".so", ".dll", ".cs", ".js", ".boo", ".meta", ".cginc", ".hlsl" };
} }
} }

View File

@ -71,18 +71,5 @@ namespace YooAsset
{ {
return $"{Setting.PatchManifestFileName}_{packageName}.version"; return $"{Setting.PatchManifestFileName}_{packageName}.version";
} }
/// <summary>
/// 获取着色器资源包全名称(包含后缀名)
/// </summary>
public static string GetUnityShadersBundleFullName(bool uniqueBundleName, string packageName)
{
string shareBundleName;
if (uniqueBundleName)
shareBundleName = $"{packageName.ToLower()}_{YooAssetSettings.UnityShadersBundleName}.{Setting.AssetBundleFileVariant}";
else
shareBundleName = $"{YooAssetSettings.UnityShadersBundleName}.{Setting.AssetBundleFileVariant}";
return shareBundleName.ToLower();
}
} }
} }