mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Update YooAsset 2.3.8 -> 2.3.12
This commit is contained in:
@@ -44,7 +44,7 @@ namespace YooAsset
|
||||
/// <summary>
|
||||
/// 序列化(二进制文件)
|
||||
/// </summary>
|
||||
public static void SerializeToBinary(string savePath, PackageManifest manifest)
|
||||
public static void SerializeToBinary(string savePath, PackageManifest manifest, IManifestServices services)
|
||||
{
|
||||
using (FileStream fs = new FileStream(savePath, FileMode.Create))
|
||||
{
|
||||
@@ -96,9 +96,20 @@ namespace YooAsset
|
||||
buffer.WriteInt32Array(packageBundle.DependBundleIDs);
|
||||
}
|
||||
|
||||
// 写入文件流
|
||||
buffer.WriteToStream(fs);
|
||||
fs.Flush();
|
||||
// 清单处理操作
|
||||
if (services != null)
|
||||
{
|
||||
var tempBytes = buffer.GetBytes();
|
||||
var resultBytes = services.ProcessManifest(tempBytes);
|
||||
fs.Write(resultBytes, 0, resultBytes.Length);
|
||||
fs.Flush();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 写入文件流
|
||||
buffer.WriteToStream(fs);
|
||||
fs.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,10 +124,19 @@ namespace YooAsset
|
||||
/// <summary>
|
||||
/// 反序列化(二进制文件)
|
||||
/// </summary>
|
||||
public static PackageManifest DeserializeFromBinary(byte[] binaryData)
|
||||
public static PackageManifest DeserializeFromBinary(byte[] binaryData, IManifestServices services)
|
||||
{
|
||||
// 创建缓存器
|
||||
BufferReader buffer = new BufferReader(binaryData);
|
||||
BufferReader buffer;
|
||||
if (services != null)
|
||||
{
|
||||
var resultBytes = services.RestoreManifest(binaryData);
|
||||
buffer = new BufferReader(resultBytes);
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer = new BufferReader(binaryData);
|
||||
}
|
||||
|
||||
// 读取文件标记
|
||||
uint fileSign = buffer.ReadUInt32();
|
||||
|
@@ -10,6 +10,7 @@ namespace YooAsset
|
||||
private enum ESteps
|
||||
{
|
||||
None,
|
||||
RestoreFileData,
|
||||
DeserializeFileHeader,
|
||||
PrepareAssetList,
|
||||
DeserializeAssetList,
|
||||
@@ -19,7 +20,9 @@ namespace YooAsset
|
||||
Done,
|
||||
}
|
||||
|
||||
private readonly BufferReader _buffer;
|
||||
private readonly IManifestServices _services;
|
||||
private byte[] _sourceData;
|
||||
private BufferReader _buffer;
|
||||
private int _packageAssetCount;
|
||||
private int _packageBundleCount;
|
||||
private int _progressTotalValue;
|
||||
@@ -30,13 +33,14 @@ namespace YooAsset
|
||||
/// </summary>
|
||||
public PackageManifest Manifest { private set; get; }
|
||||
|
||||
public DeserializeManifestOperation(byte[] binaryData)
|
||||
public DeserializeManifestOperation(IManifestServices services, byte[] binaryData)
|
||||
{
|
||||
_buffer = new BufferReader(binaryData);
|
||||
_services = services;
|
||||
_sourceData = binaryData;
|
||||
}
|
||||
internal override void InternalStart()
|
||||
{
|
||||
_steps = ESteps.DeserializeFileHeader;
|
||||
_steps = ESteps.RestoreFileData;
|
||||
}
|
||||
internal override void InternalUpdate()
|
||||
{
|
||||
@@ -45,6 +49,19 @@ namespace YooAsset
|
||||
|
||||
try
|
||||
{
|
||||
if (_steps == ESteps.RestoreFileData)
|
||||
{
|
||||
if (_services != null)
|
||||
{
|
||||
var resultData = _services.RestoreManifest(_sourceData);
|
||||
if (resultData != null)
|
||||
_sourceData = resultData;
|
||||
}
|
||||
|
||||
_buffer = new BufferReader(_sourceData);
|
||||
_steps = ESteps.DeserializeFileHeader;
|
||||
}
|
||||
|
||||
if (_steps == ESteps.DeserializeFileHeader)
|
||||
{
|
||||
if (_buffer.IsValid == false)
|
||||
|
@@ -361,21 +361,21 @@ namespace YooAsset
|
||||
/// 资源回收
|
||||
/// 说明:尝试卸载指定的资源
|
||||
/// </summary>
|
||||
public void TryUnloadUnusedAsset(string location)
|
||||
public void TryUnloadUnusedAsset(string location, int loopCount = 10)
|
||||
{
|
||||
DebugCheckInitialize();
|
||||
AssetInfo assetInfo = ConvertLocationToAssetInfo(location, null);
|
||||
_resourceManager.TryUnloadUnusedAsset(assetInfo);
|
||||
_resourceManager.TryUnloadUnusedAsset(assetInfo, loopCount);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 资源回收
|
||||
/// 说明:尝试卸载指定的资源
|
||||
/// </summary>
|
||||
public void TryUnloadUnusedAsset(AssetInfo assetInfo)
|
||||
public void TryUnloadUnusedAsset(AssetInfo assetInfo, int loopCount = 10)
|
||||
{
|
||||
DebugCheckInitialize();
|
||||
_resourceManager.TryUnloadUnusedAsset(assetInfo);
|
||||
_resourceManager.TryUnloadUnusedAsset(assetInfo, loopCount);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
Reference in New Issue
Block a user