CRIWARE Unity Plugin Manual
Last Updated: 2024-07-12
[CriFs] 批量安装数据
范例描述
概述
本样例演示如何使用数据批量安装演示脚本BatchWebInstaller来进行批量安装。
BatchWebInstaller使用CriFsWebInstaller实现。
BatchWebInstaller的工作方式特点如下。
可进行并行安装。
当其中一个安装失败时,状态会迁移至ErrorOccured,随后如果其他正在进行的安装完成,则迁移至ErrorStopped状态。
执行BatchWebInstaller.Stop时,正在进行中或者出错的要素会被退回至队列中。
可以通过以下方式重启安装:调用BatchWebInstaller.Stop,等待安装状态迁移至“Stop”,然后调用BatchWebInstaller.Start。
操作
Initialize Install Queue
清除BatchWebInstaller安装队列并添加新要素。
已安装文件会被删除。
Start or Resume Batch Install
按钮
启动或重启批量安装。
Stop
按钮
停止批量安装。
场景信息
中间件
FileMajik PRO (CRI File System)
范例
进阶范例
存储路径
/CRIWARE/SDK/unity/samples/UnityProject/Assets/Scenes/crifilesystem/advanced/
场景文件
Scene_01_BatchWebInstall.unity
程序描述
void
Start ()
{
// Initialize CriFsWebInstaller module
var config = CriFsWebInstaller.defaultModuleConfig;
config.numInstallers = installConcurrency;
CriFsWebInstaller.InitializeModule(config);
// Create BatchWebInstaller
batchWebInstaller =
new
BatchWebInstaller(installConcurrency);
InitializeInstallQueue();
}
初始化CriFsWebInstaller模块并生成BatchWebInstaller。
若要控制CriFsWebInstaller模块的行为,需要修改传递给CriFsWebInstaller.InitializeModule的配置参数。
同时新安装要素也会被加入队列。
private
IEnumerator StartBatchWebInstall()
{
batchWebInstaller.Start();
while
(
true
) {
// CriFsWebInstaller.ExecuteMain is executed in the BatchWebInstaller.Update
batchWebInstaller.Update();
if
((batchWebInstaller.status == BatchWebInstaller.Status.Complete) || (batchWebInstaller.status == BatchWebInstaller.Status.ErrorStopped)) {
break
;
}
yield
return
true
;
}
}
每帧执行BatchWebInstaller模块的定期处理,并等待批量安装完成的协程。
CriFsWebInstaller.ExecuteMain会在BatchWebInstaller.Update中被正确调用,不需要显式调用。
void
OnDestroy()
{
// Destroy BatchWebInstaller
batchWebInstaller.Dispose();
batchWebInstaller = null;
// Finalize CriFsWebInstaller module
CriFsWebInstaller.FinalizeModule();
}
销毁BatchWebInstaller并终止CriFsWebInstaller模块。
Copyright (c) CRI Middleware Co., Ltd. 1.8.10