内置文件系统新增COPY_BUILDIN_PACKAGE_MANIFEST参数
This commit is contained in:
何冠峰
2025-02-06 17:35:10 +08:00
parent 644e6655ff
commit e7907eeaa7
5 changed files with 214 additions and 4 deletions

View File

@@ -8,12 +8,14 @@ namespace YooAsset
private enum ESteps
{
None,
CopyBuildinManifest,
InitUnpackFileSystem,
LoadCatalogFile,
Done,
}
private readonly DefaultBuildinFileSystem _fileSystem;
private CopyBuildinPackageManifestOperation _copyBuildinPackageManifestOp;
private FSInitializeFileSystemOperation _initUnpackFIleSystemOp;
private LoadBuildinCatalogFileOperation _loadCatalogFileOp;
private ESteps _steps = ESteps.None;
@@ -29,7 +31,10 @@ namespace YooAsset
Status = EOperationStatus.Failed;
Error = $"{nameof(DefaultBuildinFileSystem)} is not support WEBGL platform !";
#else
_steps = ESteps.InitUnpackFileSystem;
if (_fileSystem.CopyBuildinPackageManifest)
_steps = ESteps.CopyBuildinManifest;
else
_steps = ESteps.InitUnpackFileSystem;
#endif
}
internal override void InternalOnUpdate()
@@ -37,6 +42,29 @@ namespace YooAsset
if (_steps == ESteps.None || _steps == ESteps.Done)
return;
if (_steps == ESteps.CopyBuildinManifest)
{
if (_copyBuildinPackageManifestOp == null)
{
_copyBuildinPackageManifestOp = new CopyBuildinPackageManifestOperation(_fileSystem);
OperationSystem.StartOperation(_fileSystem.PackageName, _copyBuildinPackageManifestOp);
}
if (_copyBuildinPackageManifestOp.IsDone == false)
return;
if (_copyBuildinPackageManifestOp.Status == EOperationStatus.Succeed)
{
_steps = ESteps.InitUnpackFileSystem;
}
else
{
_steps = ESteps.Done;
Status = EOperationStatus.Failed;
Error = _copyBuildinPackageManifestOp.Error;
}
}
if (_steps == ESteps.InitUnpackFileSystem)
{
if (_initUnpackFIleSystemOp == null)